Ind*_*ial 31 javascript backbone.js
场景:当我(尝试)通过构造函数设置变量时,
我得到了一个alert()说法.但是,如果我取消注释那个生活在myView中的内容,那么警报会改为"内部的Hello",正如人们所期望的那样.undefinedmyVarmyVar
问:
这是否意味着我不能设置任何PARAMS视图的构造,除了骨干网自身参数,可以如model,collection,el,id,className和tagName?
手册:http://documentcloud.github.com/backbone/#View-constructor
代码:
var myView = Backbone.View.extend({
//myVar : 'Hello from inside',
initialize: function() {
alert(this.myVar);
}
)};
new myView({myVar: 'Hello from outside'});
Run Code Online (Sandbox Code Playgroud)
cza*_*aic 57
传递给构造函数的选项会自动存储为 this.options
var myView = Backbone.View.extend({
myVar : 'Hello from inside',
initialize: function() {
alert(this.options.myVar);
}
)};
new myView({myVar: 'Hello from outside'});
Run Code Online (Sandbox Code Playgroud)
Bra*_*ave 27
从主干1.1.0开始,options参数不再自动附加到视图(请参阅问题2458以供讨论).您现在需要手动附加每个视图的选项:
MyView = Backbone.View.extend({
initialize: function(options) {
_.extend(this, _.pick(options, "myVar", ...));
// options.myVar is now at this.myVar
}
});
new MyView({
myVar: "Hello from outside"
...
});
Run Code Online (Sandbox Code Playgroud)
或者,您可以使用此迷你插件自动附加白名单选项,如下所示:
MyView = BaseView.extend({
options : ["myVar", ...] // options.myVar will be copied to this.myVar on initialize
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17078 次 |
| 最近记录: |