2
A
回答
1
好了,我想出了以下方法:
假设模型有一个属性status
,当它被修改为active
我想隐藏在其他条目的编辑按钮(或只需禁用它)。
我收藏视图监听模型中的变化:
initialize: function(){
this.listenTo(this.collection, "change:status", this.triggerEditable);
},
的侦听器回调看起来像这样:
triggerEditable: function(obj){
var triggerValue = null;
// I am interested in a status which became 'active' or stopped being 'active'
if (obj.get("status") == 'active' && obj.previous("status") != 'active') {
triggerValue = "editable:false";
} else if (obj.get("status") != 'active' && obj.previous("status") == 'active') {
triggerValue = "editable:true";
}
// for any other status change - return
if (!triggerValue) return;
// trigger is fired for all other objects in the collection
_.each(obj.collection.without(obj),function(otherObj) {
otherObj.trigger(triggerValue);
});
}
所以,当一个对象被激活或停止活跃,edidable:false
或edidable:true
是为所有其他条目触发的。所有我需要做的是添加到模型视图初始化监听器:
this.listenTo(this.model, "editable:false", this.disableEdit);
this.listenTo(this.model, "editable:true", this.enableEdit);
在这里,我想我可以两行合并为一个,先听editable
命名空间(如何?)和然后通过传递一个参数给函数(又是如何?)。
从这里是直线前进 - 实现侦听器回调:
disableEdit: function() {
var e = this.$el.find('button.edit')
e.attr('disabled','disabled');
}
如果有人有什么要补充的,或者使这种解决方案更好,我会很高兴地听到。 无论如何,希望它会对别人有帮助!
2
您可以在默认设置为true
的模型上添加属性editable
。然后当您点击其中一个视图上的“编辑”按钮时,您可以遍历其他视图的所有模型,并将editable
设置为false
。在视图上,您将听取模型更改并重新渲染视图。如果editable
是false
,您可以禁用编辑按钮。
相关问题
- 1. 骨干集合 - 如何过滤与其他集合的集合?
- 2. 骨干集合模型不可访问
- 3. 在骨干集合中访问模型
- 4. 骨干:Singleton的意见?
- 5. 骨干js集合问题
- 6. 如何骨干意见
- 7. 嵌套意见骨干JS
- 8. 用骨干交换意见?
- 9. 访问嵌套的骨干收集
- 10. 集合中的骨干集合
- 11. 集合中的骨干集合
- 12. 骨干访问数据/其他视图的事件
- 13. 骨干集合导出问题
- 14. 如何访问骨干集合的获取结果?
- 15. 随着骨干 - 如何访问从JSON集合中的模型
- 16. 骨干JS集合解析
- 17. 骨干:预取集合
- 18. 骨干定义集合
- 19. 骨干集合推环
- 20. 预加载骨干集合
- 21. 骨干多个集合取
- 22. 骨干嵌套集合
- 23. 骨干共享集合
- 24. 骨干找到集合
- 25. 骨干筛选集合
- 26. 迭代骨干集合
- 27. 修改骨干集合
- 28. 骨干意见无法使用requirejs
- 29. 骨干意见不能与提取json
- 30. Require.js加载骨干意见,以便
不错的一个!是否可以添加到数据库中不存在的模型属性?怎么样? – guyaloni
说实话,我从来没有将我的骨干模型同步到服务器。我无法对客户端模型进行映像,因此不允许拥有自己的属性。你可以有一个自定义的[sync](http://backbonejs.org/#Model-sync)方法实现,但这可能不是最漂亮的解决方案。 – rednaw
也许:http://stackoverflow.com/questions/11941010/client-side-only-attributes-in-backbone – rednaw