Marionette.CompositeView 和 Marionette.ItemView 之间的事件
Events between Marionette.CompositeView and Marionette.ItemView
我有两个模块itemView.js
和ListView.js
。
当我获取数据时,一切正常。
问题是关于我更改相应模型时的item view
(1)。
a) ListView.js
(2) 显示模型closed
值等于 false
的所有对象 (3)
b) (1) 中closeTask
的动作改变了模型
的值从closed: false
到closed: true
c) 当 b) 发生时没有任何变化,
但是如果我重新加载页面,我会得到正确的结果(不显示closed
值等于 true
的模型)。
我应该如何解决这个问题?
(1)
// itemView.js
var itemView = Marionette.ItemView.extend({
initialize: function () {
this.model.on('change', this.render, this);
},
events: {
'click #close': 'closeTask'
},
template: itemTemplate,
tagName: 'li',
closeTask: function () {
if (!this.model.get('closed')) {
this.model.save({
closed: true
});
}
}
});
(二)
// ListView.js
var ListView = Marionette.CompositeView.extend({
template: listTemplate,
itemView: itemView
});
(三)
// Collection
myCollection.attributes = [
{
id: 1,
name: 'bar'
closed: false
},
{
id: 2,
name: 'bar2'
closed: false
},
….
];
附言:
当我获取集合时,服务器只给我关闭属性等于 false 的模型。
app.addInitializer(function () {
myCollection = new MyCollection();
myCollection.fetch();
});
我没有
使用木偶,但我一直在使用Backbone,我的想法是木偶没有刷新模板或类似的东西。
如果你尝试这个会发生什么?
// itemView.js
var itemView = Marionette.ItemView.extend({
initialize: function () {
this.model.on('change', this.render, this);
},
onRender : function(){
//verify your model:
console.log( this.model.toJSON() );
if (this.model.get('closed')) {
this.$el.fadeOut();//bye bye item
}
},
events: {
'click #close': 'closeTask'
},
template: itemTemplate,
tagName: 'li',
closeTask: function () {
if (!this.model.get('closed')) {
this.model.save({
closed: true
});
}
}
});
相关文章:
- 分派点击事件并保留击键修饰符
- 模糊事件的Javascript测试
- keyup事件处理程序更改焦点不适用于快速键入
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- 如何使Javascript动态html表及其上的事件
- 使用类从一个标记中双击事件
- 如何在未直接触发的情况下停止事件
- 如何在elfinder插件(一个文件管理器插件)上获得上传前事件
- 对iPad上的点击事件反应缓慢
- 事件和状态
- Marionette应用程序上的jquery-ui.draggable和jqQuery事件出现问题
- Marionette.CompositeView 和 Marionette.ItemView 之间的事件
- 如何在Marionette.CompositeView中建模事件
- 如何让区域收听在Marionette中布局时触发的事件
- Marionette事件聚合器vs主干路由器
- Marionette ItemView不发射“;改变“;事件
- 访问页面时未触发主干网/Marionette路由器事件
- 访问ui哈希的Marionette嵌入式事件
- Marionette.ItemView渲染事件
- Marionette中视图更新的延迟对象VS主干事件