使用Ember.js指南学习Ember。在练习ToDo应用程序时,我将模型从todo
重命名为tododata
但我获得了Error while processing route: todos No model was found for 'tododata' Error: No model was found for 'tododata'})
。
将模型重命名为todo
可以正常工作。不确定是什么问题(除了正在使用CamelCase的事实)。会欣赏一些指示
我的设置:
模型:在指南Todos.Todo
中,但为了清晰起见,我将其命名为Todos.TodoData
。
Todos.TodoData = DS.Model.extend({
...
});
路由器:在指南...find('todo');
中,我使用...find('tododata');
Todos.TodosRoute = Ember.Route.extend({
model: function() {
return this.store.find('tododata');
}
});
控制人员:在指南中todo
,我的是tododata
Todos.TodosController = Ember.ArrayController.extend({
actions: {
...
var todo = this.store.createRecord('tododata', {
...
});
...
}
});
使用TodoData
代替tododata
工作正常,但我不确定这是否正确用法(因为我认为tododata
是TodoData
的实例)。
答案 0 :(得分:4)
在为该模型调用this.store时,您需要考虑使用camelCase。在this.store方法参数中有两种处理camelCase的选项:
Ember使用Ember.DefaultResolver查找您的请求。如果您需要,可以覆盖它的行为(https://github.com/emberjs/ember.js/blob/v1.7.0/packages/ember-application/lib/system/resolver.js#L115)。