Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.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/2/jquery/79.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 使用backbone.marionete将请求的数据添加到集合_Javascript_Jquery_Backbone.js_Marionette - Fatal编程技术网

Javascript 使用backbone.marionete将请求的数据添加到集合

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.

在我的主干模型中,我试图向服务器发出一个请求,从一些JSON填充一个集合:

{
"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中的代码。哦,好的,我明白了,我有一个游戏集合,我将在这个过程中使用它,我必须做一些其他的工作来获得帐户类型并填充一个下拉列表,谢谢