【发布时间】:2012-12-05 23:51:04
【问题描述】:
我是 Backbone 的新手(仍然停留在 Ruby on Rails 模式中),并且对于如何将集合作为属性/属性添加到模型中有点困惑(“属性”是正确的术语吗?)。
例如,我有一个名为 current_plan 的模型和一个名为 json_dump 的变量,该变量是从服务器返回的,其中包含一个 participants 数组。我希望它有一个名为participants 的属性(它是参与者的集合),从 json_dump.participants 变量中填充它,并且能够使用类似 `current_plan.participants.where({first_name: "Dan"} )。
这是我的初始化函数的一些 sn-ps:
var current_plan = new Plan();
current_plan.set({attribute: val} ...other attributes... );
current_plan.participants = new Backbone.Collection(json_dump.participants);
但这迫使我访问常规属性,例如:current_plan.attributes.attribute。另外,我可以看到current_plan.attributes.participants.models 中有正确的数据,但我不知道如何使用current_plan 上的任何收集方法。
显然,我不明白发生了什么,以及为什么涉及这么多额外的层。 Backbone 文档似乎有点稀疏,我无法在 SO 或 Google 搜索中找到与我想要做的匹配的任何内容。如果还有其他问题或教程可以解释这一点,我将非常感谢有人指出我的意思。我还看到了Backbone Relational 项目,这似乎是我需要的,但在我了解基础知识之前,我不希望向 Backbone 添加更多复杂性。
感谢您为帮助新 Backbone 用户提供的任何帮助!
【问题讨论】:
-
我没有将其发布为答案,因为我还没有尝试过,但是当我忘记模型希望我使用“get”而不是直接访问属性时,主干让我很多次像这样: current_plan.get('participants') 有什么帮助吗?
-
Jason,我试过了,但它只返回 Collection 并且不允许我使用任何 Collection 方法。不过谢谢:)
-
current_plan.participants = ... 对我来说似乎不应该工作,我想你会想要 current_plan.set({participants: ...});另外,在将 Backbone 集合分配给模型之前,您是否检查过它是否正常工作?
-
它得到了回答,但不是这里的答案。
标签: javascript backbone.js model-associations backbone-relational backbone.js-collections