1

私は次の設定をしています:

App.AreasController = Ember.ArrayController.extend({
  itemController: 'area'
});

// In my project route:
setupController: function(controller, model) {
  this.controllerFor('areas').set('content', model.areas);
}

私のビューでは、私は現在、自分App.Areasの を編集しており、ビューから与えられた に対して (itemController の) コントローラー メソッドを呼び出したいと考えareaています。どうすればいいですか?

コントローラーにアクセスしようとするとarea.get('controller')(ここでareaは の 1 つの項目を表しますmodel.areas)、 が返されますunknown

すると、「これを解決する方法についてのアイデアはありますか?」area.send('save')の行に沿ってエラーが表示されます。Error: Attempted to handle event 'save' on <App.Area:ember1013:5230a2ee945f3b718a00006e> while in state root.loaded.saved.

4

1 に答える 1

0

次のようなものが必要になると思います。

{{#each}}
  <li {{action toggleEdit}}>
     <!-- Other stuff goes here -->
  </li>
{{/each}}

App.AreaController = Ember.ObjectController.extend({
    isEditing : false,
    toggleEdit : function(){
       this.set('isEditing', !this.get('isEditing'));
    }
});

一般的なアイデアのJSBinは次のとおりです。http://jsbin.com/ucanam/1045/edit

ビュー内の「次のレベル」は itemController であり、アイテム自体ではありません。コントローラーはビューとアイテムの間にあるため、アイテムからコントローラーを取得する必要はありません。したがって、itemController で直接メソッドを呼び出すだけです。

于 2013-09-14T04:21:04.350 に答える