Xer*_*rri 5 object backbone.js backbone-views
我已经与骨干工作了一段时间,现在我正在使用一些观点.在我的一些观点中,我有时会添加自定义属性,例如:
var DataGrid = Backbone.View.extend({
className:"datagrid",
lookup: {
header: "", //Header wrapper row element
headers: [], //Views in header
body: "", //Body wrapper row element
rows: [] //Views in body
},
events: {
...
},
initialize: function() {
...
},
render: function() {
...
}
});
Run Code Online (Sandbox Code Playgroud)
如您所见,我将"查找"作为对象的额外属性.我在许多视图中使用DataGrid,我遇到了一种非常奇怪的行为.当我在使用DataGrid的视图之间切换时,仍然会使用旧数据填充"lookup".我在创建一个新的DataGrid时使用"new"但我仍然找到旧数据.我错过了什么吗?
编辑:关注@rabs回复.我在Backbone中搜索了静态变量并发现了这一点:使用Coffeescript在Backbone.js中使用静态类属性进行简化
我知道答案已被接受(前一段时间),但是当我最近在一个骨干项目上遇到这个问题时,我认为值得一提的是你也可以将属性定义为一个函数.这对于需要在当前模型中将属性设置为值的视图特别有用.
通过将属性定义为函数,您可以执行类似的操作
var myObject = Backbone.View.extends({
attributes: function() {
if(this.model) {
return {
value: this.model.get('age')
}
}
return {}
}
});
Run Code Online (Sandbox Code Playgroud)
希望能帮助别人
以这种方式声明变量变量的范围是类而不是实例,类似于s static或class变量.
所以,查找对象将在您的不同实例之间共享.
您可以在创建它时将查找对象传递给您的实例,这样它将作为实例变量运行.
| 归档时间: |
|
| 查看次数: |
6483 次 |
| 最近记录: |