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_Parse Platform - Fatal编程技术网

Javascript 主干视图不';无法正确渲染

Javascript 主干视图不';无法正确渲染,javascript,backbone.js,parse-platform,Javascript,Backbone.js,Parse Platform,我创建了一个视图来呈现parse.com获取的集合,但是如果我调用传递它的视图,则集合不起作用 获取和发送到视图的函数: friends: function () { var self = this; var User = Parse.Object.extend("User"); var Amici = Parse.Object.extend("User"); var query = new Parse.Query(User); query.equal

我创建了一个视图来呈现parse.com获取的集合,但是如果我调用传递它的视图,则集合不起作用

获取和发送到视图的函数:

friends: function () {

    var self = this;
    var User = Parse.Object.extend("User");
    var Amici = Parse.Object.extend("User");

    var query = new Parse.Query(User);
    query.equalTo("objectId", Parse.User.current().id);
    query.find({
        success: function (user) {
            for (var i = 0; i < user.length; i++) {

                user[i].relation("amici").query().find({

                    success: function (amici) {

                        console.log(amici);
                        var friendscollection = new Amicizie(amici);
                        console.log(friendscollection);
                        var page = new Homelistuser({
                            model: friendscollection
                        });
                        self.changePage(page);

                    }
                });
            }
        }
    });
},
它似乎是要传递到视图的正确集合,但未正确呈现。Ad示例此集合正确呈现:

child {length: 5, models: Array[5], _byId: Object, _byCid: Object, model: function…}
为什么第一个系列不起作用,而最后一个系列起作用


模型:有效集合的数组[]为:

Models: Array[5] 
0: child
1: child
2: child 
3: child

而不起作用的集合的models:Array[]是:

models: Array[3] 
0: Backbone.Model 
1: Backbone.Model 
2: Backbone.Model
观点:

var Homelistuser = Backbone.View.extend({

    tagName: "ul",
    id: "list",

    template: Handlebars.compile(template),

    initialize: function () {
        this.model.bind("reset", this.render, this);
        $(window).on('orientationchange', this.onOrientationChange);
        $(".out").on('click', this.log_out);
        $(".prove").on('click', this.prove);
    },
    events: {
        "click .out": "log_out"

    },
    render: function (eventName) {
        $(this.el).empty();
        _.each(this.model.models, function (ad) {


            $(this.el).append(new SingleUserView({
                model: ad
            }).render().el);
        }, this);
        return this;
    },
第一个视图调用的视图:

var SingleUserView = Backbone.View.extend({

    tagName: "li",

    events: {
        "click": "goToDetails",
            "click .out": "log_out"
    },

    template: Handlebars.compile(template),

    initialize: function () {
        this.model.bind("change", this.render, this);
        this.model.bind("destroy", this.close, this);
    },

    render: function (eventName) {
        var ad = this.model.toJSON();
        console.log(ad);
        ad.cid = this.model.cid;
        $(this.el).html(this.template(ad));
        return this;
    },

你说的“不起作用”是什么意思?你能确切地说明哪个集合起作用吗?可能有些模型是无效的。引用的集合信息不太有用,因为真正的信息在
models:Array[3]
element中。该集合的工作原理是:子{length:5,models:Array[5],_byId:Object,_byCid:Object,model:function…}。这不起作用:child{length:3,models:Array[3],_byId:Object,_byCid:Object,url:“…}。起作用的集合的models:Array[]是:models:Array[5]0:child 1:child 2:child 3:child,而不起作用的集合的models:Array[]是:models:Array[3]0:Backbone.Model:Backbone.Model.2:Backbone.Model
var SingleUserView = Backbone.View.extend({

    tagName: "li",

    events: {
        "click": "goToDetails",
            "click .out": "log_out"
    },

    template: Handlebars.compile(template),

    initialize: function () {
        this.model.bind("change", this.render, this);
        this.model.bind("destroy", this.close, this);
    },

    render: function (eventName) {
        var ad = this.model.toJSON();
        console.log(ad);
        ad.cid = this.model.cid;
        $(this.el).html(this.template(ad));
        return this;
    },