如何将事件绑定到主干中的基本变量
How to bind an event to a basic variable in backbone?
我是Backbone的新手。这是我的问题。我有一个歌曲列表的集合和这个列表的当前播放歌曲的索引。代码如下:
var songCollection = Backbone.Collection.extend({
initialize: function(){
...
this.index = 0;
...
},
...
getNextSong:function(){
...
this.index++;
...
}
})
还有一个视图显示当前播放歌曲的内容。我想在当前播放的歌曲更改时更新视图信息。下面的代码在视图中不起作用。
var view = Backbone.View.extend({
initialize:function(options){
this.options.on('change:index', this.render, this);
}
)}
也没有
this.listenTo(...);
有人能告诉我们解决这个问题的方法吗?
"change:[attribute]"(型号、值、选项)-当特定属性更新时-事件目录
模型attributes
哈希内部的更改会触发更改事件,据我所知,更改集合的随机属性不会引发任何事件。
您最好在模型的属性中有一个类似isPlaying
的标志,并从视图中列出它在集合上的更改。
var songModel = Backbone.Model.extend({
defaults: {
isPlaying: false
}
});
var songCollection = Backbone.Collection.extend({
model: songModel
});
var view = Backbone.View.extend({
initialize: function(options) {
this.listenTo(this.collection, 'change:isPlaying', this.render);
},
render: function(model, value, options) {
if(value){
//---------------^ this is the playing song, render it
}
}
});
相关文章:
- 导航到特定事件的另一个变量页面
- 如何在kinetic.js中向函数和事件名称中添加可计数变量
- Javascript:OnChange事件,将数组变量传递给另一个函数
- 缓存事件的变量而不使其全局化
- 将变量传递到keyup事件内部
- 如何将事件处理程序存储在变量中,并在以后将其绑定到对象
- 存储一个事件处理程序中的变量以供另一个事件处理器使用
- Javascript:附加字符串中的事件,闭包中的变量求值
- 如何在函数内部定义一个变量以供事件调用
- 如何将两个事件的变量组合为一,作为两者的总和.jquery
- 如何将更改事件处理程序附加到变量
- 检索在onchange javascript事件中创建的javascript变量
- innerHTML在onClick事件中将变量作为参数传递
- 变量不可用于子代函数,涉及事件
- JavaScript变量在第二次单击事件时间后取消设置
- 如何在动态生成的链接的onClick事件的函数中传递JavaScript变量
- 在事件发生后更改变量的值
- 跨多个 jQuery 脚本的变量/事件
- JS变量事件?比如onChange
- Wavemaker 7中的服务变量事件