1

我想知道是否有一种方法可以使用参数指定所需的控制器(无需重新初始化)needs,如果控制器已经由{{render "'.' or '/' containing path"}}助手初始化。

例如:

//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');
  }
});

重新初始化的原因显然是 ember 控制器缓存中同一控制器的不同键:键controllers:tasks.create_tasks存在,但不存在controllers:tasksCreateTasks. 我认为这可能是一个错误。

请帮我摆脱重新初始化。

4

1 回答 1

2

这不是错误。控制器的名称是App.TasksCreateTaskController,这意味着在{{render}}你需要做的时候使用它:

{{render "tasks.create_task"}}

您使用的格式:

{{render "tasks/create_task"}}

意味着您希望 Ember.js 呈现控制器Tasks.CreateTaskController(注意命名空间Tasks而不是App)。用于告诉 Ember.js 使用不同的/命名空间(我认为这不是你想要的)。

于 2013-04-04T13:31:06.387 回答