Ember.js 如果所需的控制器由{render}helper初始化,则指定控制器之间的依赖关系

Ember.js 如果所需的控制器由{render}helper初始化,则指定控制器之间的依赖关系,ember.js,Ember.js,我想知道如果控制器已经由{render'.'或'/'包含路径'}}帮助程序初始化,是否有方法使用needs参数指定所需的控制器(无需重新初始化) 例如: //tasks.hbs {{render "tasks/create_task"}} //tasks_controller.js App.TasksController = Ember.Controller.extend({ needs: 'tasksCreateTask', aMethod: function() { //

我想知道如果控制器已经由
{render'.'或'/'包含路径'}}
帮助程序初始化,是否有方法使用
needs
参数指定所需的控制器(无需重新初始化)

例如:

//tasks.hbs
{{render "tasks/create_task"}}

//tasks_controller.js
App.TasksController = Ember.Controller.extend({
  needs: 'tasksCreateTask',

  aMethod: function() {
    // The following code causes re-initialization of the 
    // App.TasksCreateTaskController, previously initialized by the render helper.
    this.get('controllers.tasksCreateTask');
  }
});
重新初始化的原因显然是余烬控制器缓存中同一控制器的不同键:键
控制器:任务。创建任务
存在,但
控制器:任务创建任务
不存在。我想可能是个虫子


请帮我摆脱重新初始化。

这不是错误。控制器的名称为
App.TasksCreateTaskController
,这意味着要在
{{render}}
中使用它,您需要执行以下操作:

{{render "tasks.create_task"}}
您正在使用的格式:

{{render "tasks/create_task"}}

表示您希望Ember.js呈现控制器
Tasks.CreateTaskController
(注意命名空间
Tasks
,而不是
App
)。
/
用于告诉Ember.js使用不同的名称空间(我假设这不是您想要的名称空间)。

谢谢!我忘了提到我使用的是Ember RC1。我今天将其更新为RC2,问题消失了。