我尝试使用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)吗? 另一个问题:没有预编制车把的网站不是一个好主意吗?非常感谢你阅读!
答案 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数据尚未在网站上记录,但转换文档应该有助于解释一些细微差别和变化。