2014-12-02 4 views
0

У меня есть приложение Ember App, и у меня возникли проблемы с отображением данных из файла JSON. Я продолжаю получать следующее сообщение об ошибке:Ember Data (RESTAdapter) & JSON

Error while processing route: campaigns.index 
["No model was found for 'campaign'"] 

Моя JSON установлены как

{ "campaigns": 
    [ 
     {"id":"1","campaign_name":"Necessitatibus et.","campaign_code":"YQADM","description":"1","effective_from":"2014-11-24 14:33:07","products":"Loans","type":"Gold"}, 
     {"id":"2","campaign_name":"Voluptatem sequi adipisci necessitatibus.","campaign_code":"VFYGTO","description":"1","effective_from":"2014-11-24 14:33:07","products":"Loans","type":"Gold"} 
    ] 
} 

Мой маршрут

TM.CampaignsIndexRoute = Ember.Route.extend({ 
    model: function(){  
     return this.store.find("campaigns") 
    } 
}); 

Я определил атрибуты

TM.Campaigns = DS.Model.extend({ 
    campaign_name: DS.attr() 
    campaign_code: DS.attr(), 
    description: DS.attr(), 
    effective_from: DS.attr(), 
    products: DS.attr(), 
    type: DS.attr() 
}); 

Кажется, это то, что требуется ng в документации RESTAdapter на сайте Ember, но я все еще не могу избежать этой ошибки.

У меня есть контроль над тем, что выводится из JSON, что полезно. Может ли кто-нибудь увидеть, где я ошибся?

ответ

0

Данные Ember ожидают, что имена моделей будут единственными, а не множественными. Так что просто возьмите s с вашего имени модели, и вам должно быть хорошо идти.

TM.Campaign = DS.Model.extend({ 
    campaign_name: DS.attr() 
    campaign_code: DS.attr(), 
    description: DS.attr(), 
    effective_from: DS.attr(), 
    products: DS.attr(), 
    type: DS.attr() 
}); 

Вы заметите точки сообщения об ошибке это, когда он говорит, что не может найти campaign модели.

+0

Я изменил модель, и теперь она говорит: модели для кампаний не найдено. – Jetchy

0

Так я нес изменения во множественном числе в единственном числе, где в настоящее время используется слово «кампания» и выяснил, что я должен был изменить свой маршрут

TM.CampaignsIndexRoute = Ember.Route.extend({ 
    model: function(){  
     return this.store.find("campaign") 
    } 
}); 

, а также модели

TM.Campaign = DS.Model.extend({ 
    campaign_name: DS.attr() 
    campaign_code: DS.attr(), 
    description: DS.attr(), 
    effective_from: DS.attr(), 
    products: DS.attr(), 
    type: DS.attr() 
}); 

Мое замешательство было связано с тем, что множественное число используется в корне JSON.

Спасибо за помощь Пол

Смежные вопросы