我有一个Ember应用程序设置,我在显示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()
});
这似乎是根据Ember网站上的RESTAdapter文档所要求的,但我仍然无法避免此错误。
我可以控制从JSON输出的内容,这很有用。谁能看到我出错的地方?
答案 0 :(得分: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
模型时,您会注意到错误消息指出了这一点。
答案 1 :(得分: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根目录中使用了复数。
感谢您的帮助Paul