在下面的代碼中,我的點擊事件代表和所有三個'點擊'我的視圖層次結構中的處理程序被激發。事件代表團目標
但是,我也想在我的整個視圖層次結構中激發'編輯'。 '編輯'僅僅是我的'孩子'視圖中元素的目標。
模板
<script type="text/x-handlebars">
{{#view App.GrandparentView}}
{{#view App.ParentView}}
{{#view App.ChildView}}
<span {{action "edit" target="view"}}>Click Me</span>
{{/view}}
{{/view}}
{{/view}}
</script>
的JavaScript
App.GrandparentView = Ember.View.extend({
click: function() {
console.log('Grandparent Click Fired!');
},
edit: function() {
console.log('GrandParent edit fired');
}
});
App.ParentView = Ember.View.extend({
click: function() {
console.log('Parent Click Fired!');
},
edit: function() {
console.log('Parent edit fired');
}
});
App.ChildView = Ember.View.extend({
click: function() {
console.log('Child Click Fired!');
},
edit: function() {
console.log('Child edit fired');
}
});
有沒有辦法來委派在視圖層次結構的目標處理程序?我不想做的事是這樣的:
App.ChildView = Ember.View.extend({
click: function() {
console.log('Child Click Fired!');
},
edit: function() {
console.log('Child edit fired');
this.get('parentView').edit(); //DO NOT WANT TO DO THIS.
}
});
這裏是一個jsFiddle爲例進行測試。
如果您提供一個JSFiddle,請提供一個實際運行的JSFiddle。提供小提琴的目的不僅僅是看代碼,它實際上是在玩弄它。如果我不得不在小提琴內部設置Ember,它就會失敗。 –
絕對,我的不好。關鍵是始終提供一個工作的jsFiddle。我自己玩小提琴。出於某種奇怪的原因,資源被刪除。我現在更新了它。 – Rajat