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_Backbone Relational - Fatal编程技术网

Javascript 主干关系延迟加载

Javascript 主干关系延迟加载,javascript,backbone.js,backbone-relational,Javascript,Backbone.js,Backbone Relational,我将主干与我的RESTfulJSONAPI结合使用,以创建一个可以处理帖子及其评论的应用程序。我一直在尝试让主干关系系统工作,但在惰性加载方面遇到了问题 我加载了一个帖子列表,没有相关评论。单击列表中的一篇文章,我打开一个视图,获取完整的文章,包括评论,并呈现它 我有两个主干。关系模型,帖子和评论。与注释的post关系设置如下:` relations: [{ type: Backbone.HasMany, key: 'comments',

我将主干与我的RESTfulJSONAPI结合使用,以创建一个可以处理帖子及其评论的应用程序。我一直在尝试让主干关系系统工作,但在惰性加载方面遇到了问题

我加载了一个帖子列表,没有相关评论。单击列表中的一篇文章,我打开一个视图,获取完整的文章,包括评论,并呈现它

我有两个主干。关系模型,帖子和评论。与注释的post关系设置如下:`

relations: [{
            type: Backbone.HasMany,
            key: 'comments',
            relatedModel: 'Comment',
            includeInJSON: true, // don't include it in the exporting json
            collectionType: 'Comments'
        }]
现在我面临的问题是,在我检索列表时,关系就被初始化了,而列表中还没有包含注释。稍后,我通过获取模型的URI来加载完整数据。但是,这些关系似乎没有重新初始化,调用Posts.get(1)。get('comments')返回一个空的comments集合

有人知道我怎样才能最好地解决这个问题吗?数据就在那里,只是评论的集合似乎没有得到更新

编辑:我可以使Post模型将其更改:注释绑定到自身,从而更新集合。然而,我似乎找不到一个可靠的方法来获取原始注释的JSON,因为这个.get('comments')返回注释集合

注意:在我的集合中,我使用以下代码解析JSON以使其与我的API一起工作:

parse: function(response) {
        var response_array = [];
        _.each(response, function(item) {
            response_array.push(item);
        });

        return response_array;
    }
这是因为我的API返回的JSON返回一个带有索引键(关联数组)的对象,而不是本机JSON数组

{
    "id" : "1",
    "title" : "post title",
    "comments" : {
        "2" : {
            "id" : "2",
            "description": "this should solve it"
        },
        "6" : {
            "id" : "6",
            "description": "this should solve it"
        }
    }
}

非常感谢!请问任何问题,我肯定我在什么地方含糊不清

主干关系模型不解析集合而不是数组,我问题中的JSON不起作用。我更改了后端以在适当的数组中返回注释

{
    "id" : "1",
    "title" : "post title",
    "comments" : [
        {
            "id" : "2",
            "description": "this should solve it"
        },
        {
            "id" : "6",
            "description": "this should solve it"
        }]
    }
}

RelationalModel不尊重主干提供的解析函数,该函数用于在JSON继续之前解析JSON。后端返回“正确的”JSON时,延迟加载可以在没有任何额外代码的情况下工作。

主干关系模型不解析除数组之外的集合,我问题中的JSON不起作用。我更改了后端以在适当的数组中返回注释

{
    "id" : "1",
    "title" : "post title",
    "comments" : [
        {
            "id" : "2",
            "description": "this should solve it"
        },
        {
            "id" : "6",
            "description": "this should solve it"
        }]
    }
}

RelationalModel不尊重主干提供的解析函数,该函数用于在JSON继续之前解析JSON。当后端返回“正确”的JSON时,延迟加载可以在没有任何额外代码的情况下工作。

您还可以在注释模型上使用initialize方法来模拟解析方法,并使用如下自定义值定义属性(CoffeeScript):


您还可以在注释模型上使用initialize方法来模拟解析方法,并使用如下自定义值定义属性(CoffeeScript):