作为学习 Ember.js 的一部分,我正在尝试根据Adam的示例在 Ember 中创建一个表格视图。
我面临的问题是,如果我为 View 创建一个单独的控制器并为 Rows 包含一个 itemController,ember 会给出以下错误:Uncaught TypeError: Cannot call method 'lookup' of null ember-1.0.0-rc.6。 js:13933
当我调试它时,我发现在以下代码中:
controllerAt: function(idx, object, controllerClass) {
var container = get(this, 'container'),
subControllers = get(this, '_subControllers'),
subController = subControllers[idx];
if (!subController) {
subController = container.lookup("controller:" + controllerClass, { singleton: false });
容器被检索为null
.
而当它通过 ApplicationController 运行时,则不存在这样的问题。
JS Fiddle将 ApplicationController 用于 View 和另一个控制器用于 itemController - 工作正常
在此项目控制器被指定为{{#each controller itemController="tableRow"}}
和控制器是App.TableRowController
这是一个非常相似的JS Bin,JS Fiddle使用单独的 TableViewController: 项目控制器类似地指定为{{#each controller itemController='tableRow'}
。
Table View 的单独控制器使用:绑定{{view App.TableView controllerBinding="tableViewController"}}
,并且此 tableViewController 被指定为 ApplicationController 中的属性:
App.ApplicationController = Ember.ArrayController.extend({
tableViewController: function() {
var tc = Ember.get('App.TableViewController').create();
tc.set('content',Ember.ArrayProxy.create({
content: Ember.A(tableData)})
);
return tc;
}.property()
});
但由于某种原因,itemController 在这里不起作用。
这是使用单独控制器进行视图的JS Fiddle,但没有任何 itemController - 这很好用
我在控制器中有什么遗漏吗?
请帮忙。谢谢。