gpt4 book ai didi

backbone.js - 将 View 绑定(bind)到 backbone.js 中的集合

转载 作者:行者123 更新时间:2023-12-01 11:46:01 25 4
gpt4 key购买 nike

我是 backbone 的半新手。我正在尝试将集合绑定(bind)到 View ,以便在将新模型添加到集合时更新 View 。我认为当您对模型执行此操作时,您可以绑定(bind)到模型的更改事件。但是你如何对集合做同样的事情呢?

App.Views.Hotels = Backbone.View.extend({

tagName: 'ul',

render: function() {
this.collection.each(this.addOne, this);
var floorplanView = new App.Views.Floorplans({collection:floorplanCollection});
$('.floorplans').html(floorplanView.render().el);
return this;
},

events: {'click': 'addfloorplan'},

addOne: function(hotel) {
var hotelView = new App.Views.Hotel ({model:hotel});
this.$el.append(hotelView.render().el);
},

addfloorplan: function() {
floorplanCollection.add({"name": "another floorplan"});
}
});

App.Collections.Floorplans = Backbone.Collection.extend({
model: App.Models.Floorplan,
initialize: function () {
this.bind( "add", function() {console.log("added");} );
}
});

点击事件触发并添加到集合中。但是我如何让它更新 View 呢?

最佳答案

您可以监听集合的 add 事件,该事件在将新项目添加到集合时触发。在现代版本的 Backbone 中,方法 listenTobindon 更适合用于监听事件。 ( Read de documentation for more info )

例如,在您的情况下,这应该可以解决问题:

App.Views.Hotels = Backbone.View.extend({

initialize: function() {
this.listenTo(this.collection,'add', this.addOne);
},
//rest of code

希望这对您有所帮助!

关于backbone.js - 将 View 绑定(bind)到 backbone.js 中的集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15299592/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com