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名前空間に注意してください)。は、Ember.js に別の名前空間を使用するように指示するために使用されます (これはあなたが望むものではないと思います)。TasksApp/

于 2013-04-04T13:31:06.387 に答える