当集合同步时,CompositeViews会自动重新渲染吗?

时间:2013-07-03 14:57:34

标签: backbone.js marionette

我通过传递一个集合来构造一个CompositeView。该集合通过URL获取其数据。我正在使用defer / promise技术等到构建View之前填充集合。

稍后我再次调用集合上的fetch,修改url。

令我惊讶的是,CompositeView是使用Collection中的新数据重新渲染的。我以为我必须做一些事情,例如:

collectionEvents: {
    "sync" : "render"

}

但我什么也没做。根本没有事件绑定。我想在牵线木偶中我必须处理这个'手动'。

这看起来与CollectionView: Automatic Rendering有关。模型和项目视图是否也会发生这种情况?为什么一些教程等解释了绑定?

由于

- Justin Wyllie

1 个答案:

答案 0 :(得分:1)

是的但是唯一要重新渲染的东西就是集合,如果你使用CompositeView来显示模型和集合,模型部分将不会被重新渲染,你必须设置一个事件那。 因此,CompositeView具有与collectionView相同的行为,并且只要数据发生更改,它就会重新呈现集合。

对于您的第二个问题,当模型更改时,ItemViews中不会发生这种情况。 当你最适合你的应用需求时,你必须自己做。