如何将参数传递到Backbone.js视图中
How can I pass a parameter into a Backbone.js view?
我正试图将一个参数传递到Backbone.js视图中,但遇到了问题。
我的主干视图如下:
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.
}});
稍后,我将视图装箱如下:
dataTypesView = new DataTypesView({magic:true,el:$('#dataViewSpace'),templateString:'#template'});
它不起作用。我不明白的是为什么el
工作得很好(我可以使用带有this.$el.
的jquery访问它),但this.magic
和this.templateString
都是未定义的。。。
有没有什么方法可以像上面尝试的那样将参数传递到视图中?
与此相关的是,我有什么方法可以传入render函数吗?我最初尝试传入一个render函数(并将其从主干视图类中删除),但当它不起作用时,我尝试传入简单的数据类型。。。我假设,为我的第一个问题传递参数所需要做的一切都将适用于传递函数。
EDIT-显然这个答案在更新版本的Backbone中不起作用
我想通了!这很简单。。。只需要快速查看一下Backbone.js文档。。。应该先这么做。
传入后,以下参数将自动分配给视图(也就是说,您可以使用this.variableName
访问它们):模型、集合、el、id、className、tagName和属性
可以使用this.options.variableName
访问所有其他变量。
从上面的例子中,我可以通过使用this.options.magic
而不是this.magic
来访问magic
。
耶!
不是框架唯一的东西进入选项
在中查找
this.options.magic
在最新版本的Backbone(我的版本是1.1.2)中,您可以通过以下方式复制View构造函数选项:
initialize: function(options) {
_.extend(this, _.pick(options, 'several', 'specific', 'options'));
}
这个github问题值得称赞。
相关文章:
- Backbone.js视图中的多个模型
- 带有jquery插件的backbone.js视图
- 将js对象更改为使用嵌套的可观察数组敲除js视图模型
- Angular JS-视图不工作
- 为什么当我单击X时,所有项目都会从我的Backbone.js视图中删除
- 主干.js视图不会在页面加载时显示,但可以在控制台中与 jQuery 配合使用
- 单击'Backbone.js视图'不要工作
- 设置Sails js视图扩展不'不起作用
- 在 Node.js 视图中创建 OpenLayers 映射
- 支持使用Backbone.js视图加载异步模板
- Backbone.js视图可以有一个模型和一个集合吗
- backbone.js视图没有't由于异步获取而显示结果;t渲染
- 为什么我在尝试实例化一个空的backbone.js视图时出现类型错误
- 如何创建adonis.js视图
- Backbone.js视图未渲染
- Backbone js视图渲染点击方法未调用[Very Basic]
- 我可以't填充backbone.js视图
- 如何在anular.js视图中比较两个字符串
- 在Backbone.js视图中拖动gabilly.js事件
- 关于主干的困惑.js视图的渲染函数