2014-10-09 16 views
1

使用Ember.js指南學習Ember。在練習ToDo應用程序時,我將模型從todo更名爲tododata,但我獲得了Error while processing route: todos No model was found for 'tododata' Error: No model was found for 'tododata'})處理路由時出錯:找不到任何模型 - Ember.js指南

重命名模型回到todo工作正常。不知道什麼是錯的(除了正在使用CamelCase的事實)。希望得到一些direcction

我的設置:

型號:在引導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工作正常,但我我不確定這是否是正確的用法(因爲我的想法是tododataTodoData的一個實例)。

回答

4

您需要考慮在爲該模型調用this.store時使用camelCase。在這個.store方法參數中有兩個選項來處理camelCase:

  1. this.store.find('todo_data');
  2. this.store.find('todoData');

Ember使用Ember.DefaultResolver找到你所要求的。如果您需要,您可以覆蓋它的行爲(https://github.com/emberjs/ember.js/blob/v1.7.0/packages/ember-application/lib/system/resolver.js#L115)。

+0

輝煌。很棒。很快就會接受答案。 – Bala 2014-10-09 09:47:06

相關問題