1

一个集合知道它的模型,但是有没有办法让模型进入它的集合?

我需要一种方法来访问集合中的“相邻”模型。以下可能会更好地了解问题:

我正在尝试实现一个简单的应用程序,该应用程序根据模型中的“优先级”属性对项目进行排名并维护它们的列表。每个模型视图都有用于增加或减少优先级的按钮,这应该相应地改变列表的顺序。只要优先级属性是连续的,只需从当前值中加或减 1 即可,例如:

1,2,3,4,5,6

但也有一个删除按钮,允许从列表中删除任何模型。它可以导致优先级属性,例如:

1,2,5,6

现在将优先级 5 更改为 4 不会改变列表的顺序,因为它仍然大于 2。

4

1 回答 1

4

它没有记录,但模型将自动具有collection指向集合的属性。如果一个模型在多个集合中,我不知道它是如何工作的细节(也许collection属性一旦设置就不会改变)。

要解决您提到的特定问题,您可以侦听remove集合上的事件并相应地进行调整。在这种情况下,您甚至不需要该collection属性,因为模型和集合都将传递给remove侦听器。

var handler = function ( model, collection, options ) {

  // ...

};

collection.on( 'remove', handler );

Backbone.Collection 文档也这样说:

从集合中删除模型的索引可用作options.index

listeners的options参数没有记录在记录listenersremove签名的地方,但它被传递了(无论如何在 0.9.2 中)。remove

于 2012-06-28T11:58:07.687 回答