【问题标题】:Automatically updating backbone underscore template自动更新骨干下划线模板
【发布时间】:2015-09-02 05:22:55
【问题描述】:

我有一个骨干集合,它使用 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 用于我想要实现的目标,我对骨干和下划线还很陌生,所以我想知道实现这一目标的最佳方法是什么。

【问题讨论】:

    标签: javascript templates backbone.js underscore.js


    【解决方案1】:

    我只需要在视图的initialize 方法中添加这一行,以确保更新后重新渲染模板。

    MyObjectListView = Backbone.View.extend({
        initialize: function(){
            this.listenTo(APP.myObjects, 'update', this.render);
        }
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多