从 BackboneJS 集合/UnderscoreJS 数组中提取模型

发布于 2024-12-07 11:24:10 字数 128 浏览 1 评论 0原文

我一直在检查 Backbone 和 Underscore 的文档,寻找从集合中提取模型(删除值并将其返回)的“正确”方法。我知道我可以通过“models”数组属性和 splice 方法直接访问来完成此操作,但这是否绕过了我忽略的某些内置方式?

I've been checking the docs of Backbone and Underscore for a "proper" way to extract a model (remove the value and have it returned) from a collection. I know I can do this through direct access via the "models" array attribute and the splice method, but is that stepping around some built-in way I'm overlooking?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

小猫一只 2024-12-14 11:24:10

在集合上使用内置的“删除”方法至关重要。 Remove 执行以下操作:

  • 更新用于 collection.getByCid() 的内置索引
  • 更新用于 collection.get() 的内置索引
  • 递减 collection.length
  • 删除模型(如果传入数组,则删除模型) models、ids 或 cids)
  • 触发集合上的删除事件

如果直接操作集合内的模型,则上述情况都不会发生。

有关删除的更多信息:http://documentcloud.github.com/backbone/#Collection-remove< /a>

It is critical that you use the built-in "remove" method on the collection. Remove does the following:

  • updates the built-in index that's used for collection.getByCid()
  • updates the built-in index that's used for collection.get()
  • decrements collection.length
  • removes the model (or models if you pass in an array of models, ids, or cids)
  • triggers the remove event on the collection

If you manipulate the models inside the collection directly, none of the things above will happen.

More info on remove: http://documentcloud.github.com/backbone/#Collection-remove

丘比特射中我 2024-12-14 11:24:10

从你的评论来看:

我希望实际删除索引 5 处的模型并返回该值。

试试这个:

// given: myCollection is a Backbone collection

var item = myCollection.at(5);
myCollection.remove(item);

// ... now, do whatever else with `item`...

From your comment:

I'm looking to actually remove the model at say index 5 and have that value returned.

Try this:

// given: myCollection is a Backbone collection

var item = myCollection.at(5);
myCollection.remove(item);

// ... now, do whatever else with `item`...
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文