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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.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,因此,我正在为我的web应用程序使用主干网,而我很难弄清楚如何使用嵌套模型。我有一个基于java类的模型,它的JSON看起来像这样: "AdminSettings": { "defaults": { "deletable":true, "transferable":false; "issueLimit":1 } "displaySettings": { "tabs":2, "amounts:[

因此,我正在为我的web应用程序使用主干网,而我很难弄清楚如何使用嵌套模型。我有一个基于java类的模型,它的JSON看起来像这样:

"AdminSettings":
{
    "defaults": {
        "deletable":true,
        "transferable":false;
        "issueLimit":1
    }
    "displaySettings": {
        "tabs":2,
        "amounts:[10,20]
    }
}
目前,我已经为AdminSettings对象设置了端点和主干模型。我想知道是否有一种特殊的方法可以让AdminSettings中的对象获得所有的主干优势。例如,目前我必须使用:

adminSettings.get("defaultValues").shareable
但我想用:

adminSettings.get("defaultValues").get("shareable")
这不是我试图获得的唯一好处,只是一个例子


所以,是的,什么是一个好的方式来进行这件事。我在考虑为每个嵌套对象创建一个主干模型,并为每个嵌套对象设置端点,但我不能完全确定。无论如何,感谢您的关注。

您可以编写自己的自定义主干解析器:

var DisplaySettingsModel = Backbone.Model.extend({});
var DefaultValuesModel = Backbone.Model.extend({});

var AdminSettingsModel = Backbone.Model.extend({

    model: {
        defaultValues: DefaultValuesModel
        displaySettings:  DisplaySettingsModel
    },

    parse: function(response){
        response["defaultValues"] = new DefaultValuesModel(response["defaultValues"], {parse:true});
        response["displaySettings"] = new DisplaySettingsModel(response["displaySettings"], {parse:true});
        return response;
    }
});
可能重复的