Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Backbone.js 主干:我应该听什么节目_Backbone.js - Fatal编程技术网

Backbone.js 主干:我应该听什么节目

Backbone.js 主干:我应该听什么节目,backbone.js,Backbone.js,我创建了一个视图,它正在侦听一个集合。这些系列的型号一次全部更换。我希望尽可能少地渲染视图 视图: 为了更新集合,我创建了一个模型数组,重置集合并将新数组放入集合。我需要听重置,使一个空的集合被渲染。 我不从restful服务器获取数据 是否有其他方法来侦听对集合的更改 编辑: 还有一个问题:虽然我只是向集合中添加了一个模型数组,但主干网是否正在为此数组中的每个模型调用添加事件?请查看文档中的。您可以侦听参数中包含参数集合的所有事件 添加-(模型、集合、选项)-将模型添加到集合时 删除-(模型

我创建了一个视图,它正在侦听一个集合。这些系列的型号一次全部更换。我希望尽可能少地渲染视图

视图:

为了更新集合,我创建了一个模型数组,重置集合并将新数组放入集合。我需要听重置,使一个空的集合被渲染。 我不从restful服务器获取数据

是否有其他方法来侦听对集合的更改

编辑:

还有一个问题:虽然我只是向集合中添加了一个模型数组,但主干网是否正在为此数组中的每个模型调用添加事件?

请查看文档中的。您可以侦听参数中包含参数
集合
的所有事件

  • 添加-(模型、集合、选项)
    -将模型添加到集合时
  • 删除-(模型、集合、选项)
    -从集合中删除模型时
  • 重置-(收藏,选项)
    -当收藏的全部内容被替换时
  • sort-(集合,选项)
    -集合重新排序时
  • 销毁-(模型、集合、选项)
    -当模型被销毁时
  • request-(model\u或\u collection,xhr,options)
    -当模型或集合已启动对服务器的请求时
  • sync-(模型或集合,resp,选项)
    -当模型或集合已成功与服务器同步时
  • 错误-(模型或集合,resp,选项)
    -当模型或集合向远程服务器的请求失败时
  • all
    –此特殊事件为任何触发的事件激发,将事件名称作为第一个参数传递

向集合中添加一系列模型是否常见?还是一个模型一个模型地添加更好?两者都很好,这来自于
集合的官方文档。重置
:一次添加和删除一个模型都很好,但有时您需要更改的模型太多,您宁愿批量更新集合。谢谢,所以我继续使用我的阵列。
BoxContent = Backbone.View.extend({

    initialize: function(options) {
        console.log("BoxContent initializing");
        this.el = options.el;
        this.collection = options.collection;
        this.collection.on("add", this.update, this);
        this.collection.on("reset", this.update, this);
    },

    update: function(){
        this.render();
    },

    render: function() {
        document.getElementById('boxContentHeader').innerHTML = localStorage.activeBox;
        console.log("BoxContent rendering");
        var temp = _.template(maincontemp,{boxFolder: this.collection});
        this.$el.empty();
        this.$el.append(temp);
        this.$el.trigger("create");
    },

    reset: function()
    {
        this.render();
    },

    close: function(){
        //console.log("off-logging clickListener");
        //this.collection.off();
        //$(this.el).off();
    }
});