javascript - 让模型听嵌套模型和集合的最佳模式?

标签 javascript backbone.js coffeescript

使用 Backbone.js 让模型一直监听所有嵌套模型和集合的最佳模式是什么?

我应该将嵌套模型/集合放入属性中吗?我应该手动创建亲子关系并触发事件吗?

最佳答案

与 Backbone.js 的大多数事情一样,您不会得到“正确”的答案,但我可以分享我是如何做到的。对于模型和 View ,我通常遵循以下准则:

  • View 和模型应该由“负责”它们的组件实例化。对于父子关系明确的模型或 View ,父模型应该实例化,通常在 initialize() 方法中。

  • parent 应在实例化时绑定(bind)到子事件。

  • parent 应该“意识到” child ,并且可以在必要时调用子方法 - 我通常会使用此方法而不是触发子事件,因为它更明确。我试图让 child 独立于他们的 parent ,通过事件向上沟通。所以是的,深层嵌套模型将通过事件链进行通信。

  • 我有时将 .set() children 作为 Backbone 属性,但通常只使用普通的 Javascript 属性(例如 this.child)。这取决于上下文。使用 Backbone 属性提供 change 事件,因此如果您需要监视子项是否发生更改,请使用这些。 Backbone 属性还使您能够在实例化时进行设置,例如var myModel = new Model({ other: otherModel }) - 但是因为 parent 通常实例化他们的 child ,所以这在那种情况下并不适用,我通常将这种模式用于非分层模型 -模型关系。在大多数情况下,我将子项设置为纯 Javascript 属性。

关于javascript - 让模型听嵌套模型和集合的最佳模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7641707/

相关文章:

javascript - 在 OpenShift Gear 上运行 MongoDB 脚本时出错

javascript - google.visualization.DataTable() 定位分页div

javascript - 在 Backbone Marionette View 之间进行通信

arrays - CoffeeScript:循环遍历数组中的对象

ruby-on-rails - Rails 4 Assets 管道抛出 "only generation of JSON objects or arrays allowed"

javascript - PHP Web 服务器 - 将 localhost 更改为自定义域名?

javascript - Sharepoint 2013 通过 REST API : Error 403 Forbidden when trying to create item

mysql - 使用 Node js mysql 在 appfog 中应用程序崩溃

javascript - 基于键的主干关系定义的正确方法

javascript - CoffeeScript + Vue.js,Vue 实例没有安装在 html 元素上