Ember数据:无法从数据存储中获取模型

时间:2014-01-25 01:55:12

标签: ember.js ember-data

我尝试使用Ember Data填充模板。 当我尝试在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 to contacts'(应用程序手柄),它运行良好。 我还有一个名为contacts的简单模板,当我放弃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)吗? 另一个问题:没有预编制车把的网站不是一个好主意吗?

非常感谢你阅读!

1 个答案:

答案 0 :(得分: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