2

因此,我将 Backbone 用于我的 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")

这不是我想要获得的唯一好处,只是一个例子。

所以,是的,什么是解决这个问题的好方法。我正在考虑为每个嵌套对象创建一个主干模型并为每个对象设置端点,但我并不完全确定。无论如何,感谢您的观看。

4

1 回答 1

2

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

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;
    }
});
于 2013-03-07T14:17:23.983 回答