我有一个简单的应用程序,可以从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")
});