返回模型中的JSON会在Controller中引发错误

时间:2014-10-21 13:56:33

标签: ember.js

我是Ember新手。当使用以下模型与Object时,Ember抱怨The value that #each loops over must be an Array我应该使用ArrayController。但是将其更改为ArrayController抱怨ArrayProxy expects an Array or Ember.ArrayProxy, but you passed object..

我的目的是以JSON格式从模型中对象,并在对象控制器中访问它。

App.FirstRoute = Ember.Route.extend({

     model: function(){
         return {"employees":[
         {"firstName":"John", "lastName":"Doe"},
         {"firstName":"Anna", "lastName":"Smith"},
         {"firstName":"Peter", "lastName":"Jones"}
         ]};
     }
});

JSBin:http://emberjs.jsbin.com/faqatomusi/1/edit?html,js,output

1 个答案:

答案 0 :(得分:1)

修改你的垃圾箱:

您在模型钩子中将Object作为模型返回。它不是Array,因此您的控制器扩展了ObjectController。

只需更改以下代码

即可
{{#each item in model}}

{{#each item in model.employees}}

工作箱:http://emberjs.jsbin.com/tedut/1/edit?html,js,output

我的建议:

将模型更改为

 model: function(){
     return [
     {"firstName":"John", "lastName":"Doe"},
     {"firstName":"Anna", "lastName":"Smith"},
     {"firstName":"Peter", "lastName":"Jones"}
     ];
 }

你的控制器将是

App.FirstController = Ember.ArrayController.extend({

});