如何使用从嵌套路由获取模型的非单一控制器

时间:2015-04-18 18:19:58

标签: ember.js

我有一个简单的应用程序,可以从child route返回一个模型。

export default Ember.Route.extend({
    model: function(params) {
        var store = this.get("store");
        return store.find("todo", params.todo_id);
    }
});

当我的控制器是单件(今天是ember的默认设置)时,它可以正常工作。调用子路径模型钩子,并按照您的期望将模型绑定到控制器/视图/模板。

诀窍是,当我翻转单例位时,我的模型从一开始就突然死亡/未定义。今天我的initializer看起来像这样。

import Wat from "kanban/controllers/todos/todo";

export function initialize(container, application) {
    application.register('controller:todos/todo', Wat, {singleton: true });
}

如果你将它从true转为false,那么测试中断/子路径永远不会获得该控制器的模型。

这是否在ember 1.10+中得到支持,如果是这样,我在这里做错了什么?

这是github上的分支以获取更多上下文(它是一个简单的示例应用程序,以显示这是或不受支持 - 希望ember-cli应用程序是最小的)

https://github.com/toranb/kanban-board-without-ember-data/tree/nonSingletonSpike

修改

注意:使用ember-inspector时我注意到当singleton为true(默认值)时,我会在渲染应用程序后看到3个控制器。但是当我把它翻到假时我只看到2个控制器......让我想到了#34; false"选项不再受支持

然而,当我添加一个侦听" init"在控制器本身,我确实看到它调用,堆栈显示controllerFor

controller = container.lookup('controller:' + name);

......从灰烬内部调用。

export default Ember.Controller.extend({
    x: function() {
        return true;
    }.on("init")
});

0 个答案:

没有答案