2014-02-18 32 views
1

試圖返回從JSON API結果時,我發現了以下錯誤在我的控制檯:加載時出錯路線:錯誤:斷言失敗:從的findAll的響應必須是一個數組,而不是不確定的

錯誤而載入路線:錯誤:斷言失敗:從的findAll的響應必須是一個數組,而不是未定義

灰燼數據包含來自我的JSON API數據(參見圖)

View of Ember Data from the Ember Chrome inspector

除此之外,我的代碼沒有發生錯誤。

任何想法?

恩伯APP:

App = Ember.Application.create(); 

App.ApplicationAdapter = DS.RESTAdapter; 

App.ApplicationAdapter = DS.RESTAdapter.extend({ 
    url: 'http://127.0.0.1:3000', 
    namespace: 'api'  
}); 

App.ApplicationSerializer = DS.RESTSerializer.extend({ 
    primaryKey: '_id' 
}); 

App.Store = DS.Store.extend({ 
    revision: 11, 
    adapter: 'App.Adapter' 
}); 

App.Users = DS.Model.extend({ 
    "firstName": DS.attr('string'), 
    "secondName": DS.attr('string'), 
    "shortName": DS.attr('string'), 
    "emailAddress": DS.attr('string'), 
    "password": DS.attr('string'), 
    "group": DS.attr('string'), 
    "charisma": DS.attr('string'), 
    "focus": DS.attr('string'), 
    "strength": DS.attr('string'), 
    "dexterity": DS.attr('string'), 
    "userType": DS.attr('string'), 
    "dressType": DS.attr('string'), 
    "skinType": DS.attr('string'), 
    "__v": DS.attr('string'), 
    "loggedInDate": DS.attr('string'), 
    "loggedIn": DS.attr('string'), 
    "dateRegistered": DS.attr('string') 
}); 

App.User = DS.Model.extend({ 
    "firstName": DS.attr('string'), 
    "secondName": DS.attr('string'), 
    "shortName": DS.attr('string'), 
    "emailAddress": DS.attr('string'), 
    "password": DS.attr('string'), 
    "group": DS.attr('string'), 
    "charisma": DS.attr('string'), 
    "focus": DS.attr('string'), 
    "strength": DS.attr('string'), 
    "dexterity": DS.attr('string'), 
    "userType": DS.attr('string'), 
    "dressType": DS.attr('string'), 
    "skinType": DS.attr('string'), 
    "__v": DS.attr('string'), 
    "loggedInDate": DS.attr('string'), 
    "loggedIn": DS.attr('string'), 
    "dateRegistered": DS.attr('string') 
}); 


App.Router.map(function() { 
    // put your routes here 
}); 

App.IndexRoute = Ember.Route.extend({ 
    renderTemplate: function() { 
     this.render(); 
     this.render('nav', { 
      outlet: 'nav' 
     }); 
    }, 
    model: function() { 
     return this.store.find('users'); 
    } 
}); 

JSON

{ 
    "Users": [ 
    { 
     "firstName": "Berniece", 
     "secondName": "Bergstrom", 
     "shortName": "april", 
     "emailAddress": "[email protected]info", 
     "password": "PRPOP", 
     "group": 1, 
     "charisma": 4, 
     "focus": 3, 
     "strength": 3, 
     "dexterity": 1, 
     "userType": 1, 
     "dressType": 2, 
     "skinType": 1, 
     "_id": "5302604e1a41219a2d2072eb", 
     "__v": 0, 
     "loggedInDate": "2014-02-17T19:17:34.725Z", 
     "loggedIn": false, 
     "dateRegistered": "2014-02-17T19:17:34.724Z" 
    }, 
    { 
     "firstName": "Lamar", 
     "secondName": "Schneider", 
     "shortName": "august.blick", 
     "emailAddress": "[email protected]", 
     "password": "PJPUK", 
     "group": 0, 
     "charisma": 2, 
     "focus": 3, 
     "strength": 1, 
     "dexterity": 2, 
     "userType": 1, 
     "dressType": 2, 
     "skinType": 2, 
     "_id": "5302604e1a41219a2d2072ec", 
     "__v": 0, 
     "loggedInDate": "2014-02-17T19:17:34.728Z", 
     "loggedIn": false, 
     "dateRegistered": "2014-02-17T19:17:34.728Z" 
    } 
} 

回答

2

除非你需要別的東西的用戶模式,我把它扔掉,只使用用戶模型。並更改此代碼:

App.IndexRoute = Ember.Route.extend({ 
renderTemplate: function() { 
    this.render(); 
    this.render('nav', { 
     outlet: 'nav' 
    }); 
}, 
model: function() { 
    return this.store.find('user'); // Changed to user 
} 
}); 

這將返回一個數組的用戶,應該工作。

另請注意,您的用戶模型是錯誤的。由於用戶是一組用戶,因此不需要包含所有的用戶屬性。它應該是一個屬性 - 用戶。這裏是模型應該看看:

App.Users = DS.Model.extend({ 
    user: DS.hasMany('user') 
}) 
相關問題