Javascript 使用backbone.marionete将请求的数据添加到集合
在我的主干模型中,我试图向服务器发出一个请求,从一些JSON填充一个集合:Javascript 使用backbone.marionete将请求的数据添加到集合,javascript,jquery,backbone.js,marionette,Javascript,Jquery,Backbone.js,Marionette,在我的主干模型中,我试图向服务器发出一个请求,从一些JSON填充一个集合: { "accountType":["Full","Trial"] } 在my account.js模型中,我有: accountManager.module("Entities", function(Entities, accountManager,Backbone, Marionette, $, _){ Entities.account = Backbone.Model.extend({}); Entities.
{
"accountType":["Full","Trial"]
}
在my account.js模型中,我有:
accountManager.module("Entities", function(Entities, accountManager,Backbone, Marionette, $, _){
Entities.account = Backbone.Model.extend({});
Entities.accountCollection = Backbone.Collection.extend({
model: Entities.account,
comparator: "account",
url:"webapp/jsonData"
});
var API = {
getaccountEntities: function(){
var accounts = new Entities.accountCollection();
accounts.fetch();
if(accounts.length === 0){
console.log("No profiles loaded");
}
return accounts;
}};
accountManager.reqres.setHandler("account:entities", function(){
return API.getaccountEntities();
});
});
Controller.js
accountManager.module("accountsApp.List", function(List, accountManager,Backbone, Marionette, $, _){
List.Controller = {
listaccounts: function(){
var accounts = accountManager.request("account:entities");
var accountsListView = new List.accounts({
collection: accounts});
accountManager.mainRegion.show(accountsListView);
}
};
});
app.js
var profileManager = new Marionette.Application();
profileManager.addRegions({
mainRegion: "#main-region",
});
profileManager.on("initialize:after", function(){
profileManager.profilesApp.List.Controller.listprofiles();
});
如何使用返回的数据填充集合,然后将其显示在视图中
在我自己的一本书中跟随教程,但似乎无法使它起作用
控制台记录错误(因此我知道它没有获取数据),我还收到一个错误:
'未捕获引用错误:未定义帐户'
有什么建议吗?您正在尝试使用不返回集合的API enpoint初始化集合。“webapp/jsonData”需要
[
{ id: 1, name: "account 1", type: "Full"},
{ id: 2, name: "account 2", type: "Trial"},
{ id: 3, name: "account 3", type: "Full"}
]
[
{name: "Full"},
{name: "Trial"}
]
请注意,它是一个对象数组,其中每个对象都将成为集合中的一个模型
特别是,下面的JSON(根据您的问题)无法创建集合:
{
"accountType":["Full","Trial"]
}
相反,如果您想要一个帐户类型集合,您的JSON需要类似
[
{ id: 1, name: "account 1", type: "Full"},
{ id: 2, name: "account 2", type: "Trial"},
{ id: 3, name: "account 3", type: "Full"}
]
[
{name: "Full"},
{name: "Trial"}
]
集合中还有一个小错误:
comparator
值必须是对象属性。换句话说,只有当每个帐户模型都有一个“account”属性时,它才会工作。您的API返回什么?它是不是在归还一个收藏品?从您上面的问题来看,您似乎正在尝试将模型提取到集合中。您好,谢谢您的回复。我已经更新了我的问题,我正在关注持久化数据部分,它在我返回静态数据时起作用,但当我试图从服务器填充集合时,我遇到了问题。我添加了app.js、account.js和controller中的代码。哦,好的,我明白了,我有一个游戏集合,我将在这个过程中使用它,我必须做一些其他的工作来获得帐户类型并填充一个下拉列表,谢谢