2

我在主干中有一个集合......在初始化方法中我正在这样做......当这个集合添加了一个项目时,我想重新渲染一个视图。

initialize: function (models, options) {

        this.bind('add', function () {
            NS.discussionView.reRender();
        });
    }

这个解决方案非常有效,但是我的同事说我完全违背了骨干的设计初衷。有没有更好的方法来做到这一点,或者这是一个好的做法?这些问题有点主观,我真的想知道我应该如何正确地做这样的事情。感谢您的任何反馈或建议。

回应答案......好吧,对象模型更深。讨论视图有一个讨论模型,它有一个主题属性,它是主题模型的骨干集合。每个主题都有一个回复模型的回复集合。将回复添加到主题时,我需要再次呈现讨论视图。如何正确设置该链?

4

1 回答 1

3

简单地反转依赖关系:视图可能并且应该依赖于模型,而不是相反。这样,单个模型可能会被多个视图(简单、详细等)使用,并且您可以在不修改模型的情况下添加视图。

model.bind('add', function () {
    this.render();
});

也更喜欢render()方法名称遵循 Backbone.js 命名约定。

于 2011-12-12T22:31:57.523 回答