【问题标题】:Ember Data: can't get a model from data storeEmber Data:无法从数据存储中获取模型
【发布时间】:2014-01-25 01:55:12
【问题描述】:

我尝试使用 Ember 数据填充模板。 当我尝试在我的 DS Store 中查找模型时,我遇到了一个奇怪的问题。 我学习了一些教程,但遇到了一个恼人的错误。

错误是“加载路由时出错:未定义”。

我尝试过的:

MovieTracker.Store = DS.Store.extend({
  url: 'http://addressbook-api.herokuapp.com'
});

MovieTracker.Contact = DS.Model.extend({
  first: DS.attr('string'),
  last: DS.attr('string'),
  avatar: DS.attr('string')
});

MovieTracker.Router.map(function() {
  this.resource('contacts');
});

MovieTracker.ContactsRoute = Ember.Route.extend({
    model: function(){//works when changing to 'activate:'
        //return; //this works! it shows me a simple template and updates URL to index.html#/contacts
        return this.store.find('contact');//error: 'Error while loading route: undefined'
    }
});

在 Index.html 中,我有一个指向“联系人”(应用程序把手)的简单#link-to,它运行良好。 我还有一个名为联系人的简单模板,当我放弃 this.store.find('contact') 行时,它可以正常工作。

JSBin: http://emberjs.jsbin.com/OxIDiVU/170/edit?html,js,output JSON 位于:http://addressbook-api.herokuapp.com/contacts

你能给我一些建议吗? 您是否更喜欢 Ember Data(1.0 Beta 5)。 另一个问题:没有预编译把手的网站不是一个好主意吗?

非常感谢您的阅读!

【问题讨论】:

  • 服务器的响应是否正确?你能发布服务器的响应吗?让 Ember 数据工作有点问题,但一旦一切都解决了,它确实工作得很好。我在 Ember.js 和 Ember 数据上建立了一个相当大的网站。
  • 嗨,Gogu,当然,这是我使用的特定网址:addressbook-api.herokuapp.com。 Ember Data 应该实际访问此站点 /contacts,并获取 JSON。我希望我能像你一样把一切都安排好,谢谢!
  • 我继续玩弄,发现如果我将 ContactsRou​​te 中的 'model:' 属性更改为 'activate:' 它会走得更远。该错误未显示,但另一个错误告诉我“#each loops over must be an Array”。我不知道将“模型”更改为“激活”是什么意思,但希望它可以帮助您了解错误的根源。
  • 试试这个:this.resource('contacts', {path:'/'}) 如果您将车把命名为索引。如果也失败了,你能设置一个 jsbin 吗?
  • 嗨迪文德拉!不幸的是,它没有成功。我把代码上传到jsbin:emberjs.jsbin.com/OxIDiVU/170/edit?html,js,output

标签: ember.js ember-data


【解决方案1】:

在定义主机时,您在适配器上定义它,而不是在商店上。

MovieTracker.ApplicationAdapter = DS.RESTAdapter.extend({
  host: 'http://addressbook-api.herokuapp.com'
});

另外,你不应该在模型上定义 id,它默认就在那里

MovieTracker.Contact = DS.Model.extend({
  first: DS.attr('string'),
  last: DS.attr('string'),
  avatar: DS.attr('string')
});

http://emberjs.jsbin.com/OxIDiVU/172/edit

网站上尚未记录新版本的 ember 数据,但过渡文档应该有助于解释一些细微差别和变化。

https://github.com/emberjs/data/blob/master/TRANSITION.md

【讨论】:

  • 非常感谢!绝对解决了我的问题!!!感谢 Gogu 和 Deewendra 的努力!
猜你喜欢
  • 2014-02-28
  • 1970-01-01
  • 1970-01-01
  • 2017-05-21
  • 1970-01-01
  • 1970-01-01
  • 2015-10-09
  • 2017-09-03
  • 2015-03-20
相关资源
最近更新 更多