我正在尝试将参数传递到 Backbone.js View 中,但我在执行此操作时遇到了问题。
我有一个主干 View 如下:
var DataTypesView = Backbone.View.extend({
events:{
'click .datatype': 'add'
},
initialize: function(){
console.log(this.magic);
this.render();
},
render: function(){
console.log('printing template');
console.log(this.templateString);
etc.
}});
稍后,我将 View 创建如下:
dataTypesView = new DataTypesView({magic:true,el:$('#dataViewSpace'),templateString:'#template'});
这是行不通的。我不明白的是为什么 el
工作得很好(我可以使用带有 this.$el.
的 jquery 来访问它),但是 this.magic
和 this.templateString
都是未定义的...
有什么方法可以按照我在上面尝试的方式将参数传递到 View 中吗?
相关说明 - 有什么方法可以传递渲染函数吗?我最初尝试传递一个渲染函数(并将其从主干 View 类中删除),但是当这不起作用时我尝试传递简单的数据类型......我假设需要做任何事情来传递一个我的第一个问题的参数将用于传递函数。
最佳答案
编辑 - 显然这个答案在更新版本的 Backbone 中不起作用。
我想通了! T'很简单……只需要快速检查一下 Backbone.js 文档……应该先这样做。
传入的以下参数会自动分配给 View (也就是说,您可以使用 this.variableName
访问它们):model、collection、el、id、className、tagName 和 attributes
可以使用 this.options.variableName
访问所有其他变量。
在我上面的示例中,我可以通过使用 this.options.magic
而不是 this.magic
来访问 magic
。
耶!
关于javascript - 如何将参数传递给 Backbone.js View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17561022/