以前の質問に対する答えとして、 2 つのコントローラー間のバインドは一種の悪い設計であることがわかりました。イベント処理で解決しようとしました。
App.TestView = Ember.CollectionView.extend({
tagName:'tbody',
contentBinding: 'this.controller.content',
itemViewClass: Em.View.extend({
templateName:'test',
classNameBindings:['selected:selected'],
selectedBinding: 'content.selected',
click: function(event){
var controller = this.get('controller');
this.resetSelection();
this.content.set('selected',true);
router = this.get('controller.target.router');
router.transitionTo('inc.index',this.content);
// just sends it to the parentView
controller.send('noHide',false);
}
})
});
App.MainMenuView = Em.View.extend({
noHide: function(event){
this.get('controller').set('isHidden',false);
}
})
しかし、親ビューではない他のビューまたは他のルートにイベントを送信する方法がわかりません。テーブルの行をクリックしたときに非表示のメニュー項目を切り替えたいだけです。