我有一个骨干集合,它使用fetch方法从服务器获取一个对象数组,我想要做的就是遍历模板中的每个对象并读取它的属性。以下是集合和模板
APP.MyObjects = Backbone.Collection.extend({
url: '/api/objects/',
model: APP.MyObject,
initialize: function() {
this.fetch();
}
});
APP.myObjects = new APP.MyObjects(); // Fetches the data
现在在模板中我要做的是:
<% _.each(APP.myObjects.toJSON(), function(obj) {%>
<%= obj.title %>
<% }); %>
我面临的问题是Collection.fetch
调用是异步的,因此在呈现模板时,APP.myObjects.toJSON
的长度为0
。因此,我无法查看对象属性,甚至在异步提取调用完成后,模板也不会更新。
问题:
如何在更新或更改APP.myObjects
列表时自动更新模板?在Angular中,我们使用watch
来实现我想要达到的目标,我对骨干和下划线都很新,所以我想知道实现这一目标的最佳方法是什么。
答案 0 :(得分:1)
我只需要在视图的initialize
方法中添加此行,以确保在更新后重新呈现模板。
MyObjectListView = Backbone.View.extend({
initialize: function(){
this.listenTo(APP.myObjects, 'update', this.render);
}
});