处理路线时EmberJS错误

时间:2014-10-24 00:20:48

标签: ember.js

我从一个我无法改变的服务中获取json数据。我正在尝试将此数据加载到Ember.ArrayController中。

我正在处理错误:

处理路径时出错:配置文件断言失败:ArrayProxy需要一个Array或Ember.ArrayProxy,但是你传递了对象

数据格式如下所示

var testData =
{
    "CustomerProfilesResult": [
        { "DOB": "10\/23\/1969 12:00:00 AM", "DateEnrolled": "7\/10\/2014 12:00:00 AM", "FirstName": "Rob", "LastName": "Weiner", "ProfileId": 1 }, 
        { "DOB": "10\/23\/1979 12:00:00 AM", "DateEnrolled": "10\/3\/2014 12:00:00 AM", "FirstName": "Repub", "LastName": "Smitty", "ProfileId": 1 }, 
        { "DOB": "10\/23\/1978 12:00:00 AM", "DateEnrolled": "10\/17\/2014 12:00:00 AM", "FirstName": "Democrat", "LastName": "Johnson", "ProfileId": 1 }, 
        { "DOB": "10\/23\/1996 12:00:00 AM", "DateEnrolled": "10\/18\/2014 12:00:00 AM", "FirstName": "Itchy", "LastName": "Digger", "ProfileId": 1 }]
};

这应该很简单......但是当Ember没有包含在CustomerProfilesResult中时,Ember只想要它。我试过回来了

        return Ember.$.getJSON(getProfiles)
        .success(function(data){
            return data;
        }).error(function(){
            alert('error happened... should have caught this.')
        });

  return Ember.$.getJSON(getProfiles)
        .success(function(data){
            return data.CustomerProfilesResult;
        }).error(function(){
            alert('error happened... should have caught this.')
        });

两者都以

失败

但在测试过程中我已经返回了

return testData.CustomerProfilesResult;
很好,所以它令人困惑。我知道它有些愚蠢我不知道......如果可以,请帮助。

1 个答案:

答案 0 :(得分:1)

success不关心您返回的值,因此在解析promise时它不会返回到模型钩子。原始json数据将发送到成功调用和promise的then部分。

return Ember.$.getJSON(getProfiles)
.then(function(data){
   return data.CustomerProfilesResult;
});

示例:http://emberjs.jsbin.com/hafaj/edit