Javascript 在模型更改后触发要渲染的视图

Javascript 在模型更改后触发要渲染的视图,javascript,backbone.js,marionette,Javascript,Backbone.js,Marionette,在主干网中,您可以执行以下操作: model.trigger("destroy", model); 它将从集合中删除模型并渲染视图。我试图在更改模型上的属性时获得相同的效果。有一种简单的方法可以做到这一点吗?主干网中的约定是,视图有一个渲染方法,您可以将该方法作为对其任何内置事件、您自己的事件的回调来触发,或者在您真正需要时触发 通常,我在视图的initialize方法中有如下代码: this.listenTo(this.model, 'change', this.render, this);

在主干网中,您可以执行以下操作:

model.trigger("destroy", model);

它将从集合中删除模型并渲染视图。我试图在更改模型上的属性时获得相同的效果。有一种简单的方法可以做到这一点吗?

主干网中的约定是,视图有一个渲染方法,您可以将该方法作为对其任何内置事件、您自己的事件的回调来触发,或者在您真正需要时触发

通常,我在视图的initialize方法中有如下代码:

this.listenTo(this.model, 'change', this.render, this);
this.listenTo(this.model, 'remove destroy', this.close, this);
您还可以在对特定属性进行更改时调用render,以下是在模型的“年龄”属性更改时获取要重新渲染的视图的示例:

this.listenTo(this.model, 'change:age', this.render, this);
在其他地方,渲染功能将在以下情况下触发:

model.set({ age: 27 });
有关内置主干事件的更多信息,请参阅

这里有一个。

木偶图的视图,可以防止您编写这种主干样板


这是在每个车型的视图中还是在集合视图中?我需要调用model.trigger(“change”)才能工作吗?在我的示例代码中,它用于模型的视图,但如果您希望任何视图侦听任何模型,则只需使用view.listenTo(model,“event”,view.render);您不必触发主干提供的内置事件,它们是由某些操作自动触发的。
Marionette.CollectionView.extend({
    collectionEvents: {
        "change": "render"
    }
});