【问题标题】:Error while processing route: No model was found for - Ember.js Guides处理路由时出错:找不到模型 - Ember.js 指南
【发布时间】:2014-10-09 09:32:28
【问题描述】:

通过 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 效果很好,但我不确定这是否正确使用(因为我认为tododataTodoData 的一个实例)。

【问题讨论】:

    标签: ember.js ember-data


    【解决方案1】:

    在为该模型调用 this.store 时,您需要考虑使用 camelCase。在 this.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)。

    【讨论】:

    • 太棒了。效果很好。很快就会接受答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多