boo*_*oom 9 javascript coffeescript backbone.js
使用Backbone.js让模型一直听取所有嵌套模型和集合的最佳模式是什么?
我应该在属性中放置嵌套的模型/集合吗?我应该手动创建父母关系并触发事件吗?
nra*_*itz 14
和大多数Backbone.js一样,你不会得到一个"正确"的答案,但我可以分享我是如何做到这一点的.对于模型和视图,我通常遵循以下准则:
视图和模型应该由对其负责的组件实例化.对于具有明确父/子关系的模型或视图,父模型应该实例化,通常在initialize()方法中.
父母应该在实例化时绑定儿童事件.
父母应该"了解"孩子,并且必要时可以调用子方法 - 我通常使用这种方法来触发子事件,因为它更明确.我试图让孩子们独立于他们的父母,通过事件向上沟通.所以,是的,深度嵌套的模型将通过事件链进行通信.
我有时将.set()子项作为Backbone属性,但通常只使用普通的Javascript属性(例如this.child).这取决于具体情况.使用Backbone属性提供change事件,因此如果您需要监视子项是否更改,请使用它们.Backbone属性还使您能够在实例化时设置,例如var myModel = new Model({ other: otherModel })- 但是因为父母通常实例化他们的孩子,这在那种情况下并不真正适用,并且我通常将该模式用于非分层模型 - 模型关系.在大多数情况下,我将子设置为普通的Javascript属性.
| 归档时间: |
|
| 查看次数: |
2510 次 |
| 最近记录: |