Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.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

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
Javascript 主干:集合向自身添加随机模型_Javascript_Backbone.js - Fatal编程技术网

Javascript 主干:集合向自身添加随机模型

Javascript 主干:集合向自身添加随机模型,javascript,backbone.js,Javascript,Backbone.js,我一直在寻找我问题的答案,但还没有找到有用的答案 关于如何设置集合对象的一些背景知识。在获取时,我向集合传递一个散列,并将url设置为http://localhost/index.php?a=hash。服务器应该为该特定哈希返回12个名称 出于某种原因,集合的第一个模型始终是一个属性设置为字符串的模型,用于获取集合数据,之后的每个模型都非常好 fetch : function(o) { var that = this, successCallback =

我一直在寻找我问题的答案,但还没有找到有用的答案

关于如何设置集合对象的一些背景知识。在获取时,我向集合传递一个散列,并将url设置为
http://localhost/index.php?a=hash
。服务器应该为该特定哈希返回12个名称

出于某种原因,集合的第一个模型始终是一个属性设置为字符串的模型,用于获取集合数据,之后的每个模型都非常好

fetch : function(o) {
        var that = this,
            successCallback = o.success,
            errorCallback   = o.error;
        $.ajax({
            type : 'GET',
            url  : this.url + o.hash,
            dataType : 'json',
            success : function(data) {
                _.each(data, function(name) {
                    console.log(name);
                    that.add(new Model({
                        _id : name
                    }));
                });
                successCallback();
            },
            error : errorCallback
        });
    }
记录的名称列表是我期望从服务器获得的12个名称[aaa、bbb、ccc、ddd…]。当我使用集合渲染视图时,我得到的是:

Object { cid="c1", attributes={...}, collection={...}, more...
Object { cid="c2", attributes={...}, _changing=false, more...}
Object { cid="c3", attributes={...}, _changing=false, more...}
Object { cid="c4", attributes={...}, _changing=false, more...}
Object { cid="c5", attributes={...}, _changing=false, more...}
Object { cid="c6", attributes={...}, _changing=false, more...}
Object { cid="c7", attributes={...}, _changing=false, more...}
Object { cid="c8", attributes={...}, _changing=false, more...}
Object { cid="c9", attributes={...}, _changing=false, more...}
Object { cid="c10", attributes={...}, _changing=false, more...}
Object { cid="c11", attributes={...}, _changing=false, more...}
Object { cid="c12", attributes={...}, _changing=false, more...}
Object { cid="c13", attributes={...}, _changing=false, more...}
正确的模型如下所示:

集合的第一个模型是:

我的集合的第一个模型似乎有一个
attributes
属性,初始哈希用于获取实际数据。我不知道这是怎么回事,也不知道在哪里。以下是我如何参考该系列的模型:

render : function() {
        _.each(this.collection.models, function(model) {
            console.log(model);
            var ele = this._build(model.id),
                a   = ele.find('a');

            this.$el.append(ele);
            a.click(App.pageController.trigger('showSetData', model.id));
        }.bind(this));
    }
我可以进去,只是删除该系列的第一个模型,但我想知道为什么会发生这种情况,以及是否有比黑客更好的解决方法。如果您需要任何其他信息,请告诉我!谢谢

收集代码 初始化
var col=newclientsetlist(散列)

ClientSetList主干。集合代码
初始化集合时的第一个参数是模型列表,第二个是选项哈希,这与将第一个参数用作选项的视图和模型不同。您所描述的内容与初始化集合时忽略空数组时发生的情况一致

你能把代码贴在收藏的起始位置吗

我认为你有:

var opt = {
    //... options
}
var c = new Backbone.Collection(opt);
你应该拥有:

var opt = {
    //... options
}
var c = new Backbone.Collection([], opt);

随机猜测:您正在使用散列作为参数调用集合构造函数,类似于
newyourcollection(hash)
yep,正如我所怀疑的那样。添加
[]
作为第一个参数。
var opt = {
    //... options
}
var c = new Backbone.Collection([], opt);