我正在使用Ember并尝试从我的REST API中检索数据,但它无法按预期工作。首先,我不确定如何调试RESTAdapters,其次我没有看到在Chrome Devtools网络视图中进行的调用。
HTML:
<script src="//cdnjs.cloudflare.com/ajax/libs/handlebars.js/1.3.0/handlebars.min.js"></script>
<script src="http://builds.emberjs.com/release/ember.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/ember-data.js/1.0.0-beta.11/ember-data.js"></script>
这是我的JS:
App = Ember.Application.create();
App.Store = DS.Store.extend({
adapter: DS.RESTAdapter.extend({
host: 'http://example.com/api'
})
});
App.Bodypart = DS.Model.extend({
name: DS.attr('string')
});
App.ApplicationRoute = Ember.Route.extend({
model: function() {
return App.Bodypart.find();
}
});
我的控制台返回:
Error while processing route: index undefined is not a function TypeError: undefined is not a function
我明白这意味着我显然正在返回一些空指针或空模型。
所以问题是,如何调试RESTAdapter?
答案 0 :(得分:3)
您似乎使用旧的ember-data语法并将其应用于1.0beta11。我目前没有链接,但请查看官方存储库或指南。路线中的model
挂钩应更改为:
return App.Bodypart.find();
到
return this.store.find('bodypart');
此外,您似乎也错误地声明了您的适配器。它应该是:
App.ApplicationAdapter = DS.RESTAdapter.extend({
host: 'http://example.com',
namespace: 'api'
});
此外,请考虑将请求从ApplicationRoute
更改为子路由,或者可能体验“假冻结”应用,如图所示here
答案 1 :(得分:1)
关于调试Ember,检查标签wiki:https://stackoverflow.com/tags/ember.js/info 显示以下链接: Debugging Ember
这可能会有所帮助。