0

我想知道在传递add: trueto时是否有任何方法可以获取更改后的模型fetch。它呈现集合中的所有新模型,但我也想知道是否有任何模型发生了变化。

这可能吗?

我还考虑了将不同的函数作为成功处理程序传递给 的可能性fetch,该函数将仅重新呈现视图的某些部分而不是整个视图。

4

3 回答 3

2

从 0.9.10 版开始,您应该{update:true}使用{add:true}. 这将告诉集合change为每个已更改的模型触发一个事件。(请注意,该change事件是在集合而不是模型上触发的)

如果您希望集合添加和更新模型,但不删除它们,您可以这样做:

myCollection.fetch({update:true, remove:false});

这是 Backbone.js 文档中的相关部分

于 2013-02-24T17:25:48.617 回答
2

通常的模式是有一个呈现模型的视图。然后是你:

  • 在集合的视图中订阅集合的add事件,以便附加添加模型的视图。
  • 让您的模型的视图订阅模型的change重新渲染。

如果您仍然希望只有一个视图,您: - 订阅集合的add事件以附加到视图。- 订阅集合的change事件并更新部分视图。

于 2012-08-29T20:48:13.597 回答
1

您可以绑定到“添加”事件并触发仅更新部分视图的方法。您必须显式绑定集合事件才能重新呈现您的视图。所以换句话说,你控制应该渲染视图的哪些部分。您能否仅根据集合“更改”事件更改呈现视图的功能?

每个模型都有一个方法 isNew() 和 hasChanged()。您可以循环浏览您的收藏以查看哪些模型已更改。如果有一种更简单、更熟练的方法来做到这一点,我会全力以赴。

也许您可以发布一些代码,以便我们可以确切地看到您在做什么?

于 2012-08-29T19:20:47.553 回答