出乎意料的是,下面的代码将打印Test1 undefined
而不是Test1 Test2
。
var MyView = Backbone.View.extend({
initialize: function () {
console.log(this.collection, this.test);
}
});
new MyView({collection: "Test1", test: "Test2"});
我做错了什么?
只有以下来自选项参数的属性会被合并为视图属性。
模型、集合、el、id、属性、className、tagName(见源代码)
任何其他属性被放置在视图的options属性上。
因此,要从initialize方法中访问test属性,您可以按照如下方式更新代码。console.log(this.collection, this.options.test);