Best pattern to have models listen to nested models and collections?(让模型听嵌套模型和集合的最佳模式?)
问题描述
使用 Backbone.js 让模型一直监听所有嵌套模型和集合的最佳模式是什么?
Using Backbone.js what is the best pattern to have models listen to all of their nested models and collections all the way down?
我应该将嵌套模型/集合放在属性中吗?我应该手动创建父母关系并触发事件吗?
Should I put nested models/collections in attributes? Should I create parental relationships and trigger events manually?
推荐答案
与大多数 Backbone.js 一样,你不会得到正确"的答案,但我可以分享我是如何做到的.对于模型和视图,我通常遵循以下准则:
As with most things Backbone.js, you won't get a "right" answer to this, but I can share how I do it. With both models and views, I generally follow these guidelines:
视图和模型应该由对它们负责"的组件实例化.对于具有明确父子关系的模型或视图,父模型应该实例化,通常在
initialize()
方法中.
父母应该在实例化时绑定到子事件.
Parents should bind to child events at the time of instantiation.
父母应该意识到"孩子,并且可以在必要时调用子方法 - 我通常会使用此方法而不是触发子事件,因为它更明确.我试图让孩子们独立于他们的父母,通过事件向上沟通.所以是的,深度嵌套的模型将通过事件链进行通信.
Parents should be "aware" of children, and can call child methods if necessary - I'd usually use this method over triggering a child event, as it's more explicit. I try to keep children independent of their parents, communicating upwards through events. So yes, deeply nested models would communicate through event chains.
我有时将 .set()
子属性作为 Backbone 属性,但通常只使用普通的 Javascript 属性(例如 this.child
).这取决于上下文.使用 Backbone 属性提供 change
事件,因此如果您需要监视子项是否更改,请使用它们.骨干属性还使您能够在实例化时进行设置,例如var myModel = new Model({ other: otherModel })
- 但是因为父母通常会实例化他们的孩子,所以这并不真正适用于这种情况,我通常将该模式用于非分层模型 -模型关系.在大多数情况下,我将孩子设置为纯 Javascript 属性.
I sometimes .set()
children as Backbone attributes, but usually just use plain Javascript attributes (e.g. this.child
). It depends on the context. Using Backbone attributes provides change
events, so if you need to monitor whether a child changes, use those. Backbone attributes also give you the ability to set at instantiation time, e.g. var myModel = new Model({ other: otherModel })
- but because parents usually instantiate their children, this doesn't really apply in that case, and I usually use that pattern for non-hierarchical model-model relationships. In most cases, I set children as plain Javascript attributes.
这篇关于让模型听嵌套模型和集合的最佳模式?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:让模型听嵌套模型和集合的最佳模式?
基础教程推荐
- 在 JS 中获取客户端时区(不是 GMT 偏移量) 2022-01-01
- 有没有办法使用OpenLayers更改OpenStreetMap中某些要素 2022-09-06
- 动态更新多个选择框 2022-01-01
- 在for循环中使用setTimeout 2022-01-01
- 当用户滚动离开时如何暂停 youtube 嵌入 2022-01-01
- 响应更改 div 大小保持纵横比 2022-01-01
- 角度Apollo设置WatchQuery结果为可用变量 2022-01-01
- 悬停时滑动输入并停留几秒钟 2022-01-01
- 我什么时候应该在导入时使用方括号 2022-01-01
- Karma-Jasmine:如何正确监视 Modal? 2022-01-01