Ember Data(RESTAdapter)& JSON

时间:2014-12-02 22:47:49

标签: json ember.js ember-data

我有一个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输出的内容,这很有用。谁能看到我出错的地方?

2 个答案:

答案 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