다음 코드에서 내 이벤트 위임을 클릭하고 모든 세 클릭 내 뷰 계층 구조의 처리기가 실행됩니다.대상에 대한 이벤트 위임
그러나 전체보기 계층에서을 '편집'으로 실행하고 싶습니다. '편집'은 단순히 내 '하위'보기에있는 요소의 대상입니다.
템플릿
<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>
자바 스크립트
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입니다 : 내가이 원하는 해달라고 하는 것은 이것이다.
당신이 제공하는 경우 :
여기에 바이올린을 참조하십시오
는내가 찾은 유일한 해결 방법은 Ember.View 클래스 자체를 다시 열고이 같이 클릭 핸들러를 오버라이드 (override)하는 것입니다 JSFiddle, 실제로 작동하는 것을 제공하십시오. 바이올린을 제공하는 것은 단지 코드를 보는 것이 아니라 실제로 코드를 사용하는 것입니다. 나는 Ember를 바이올린 내부에 설치해야한다면 그 목적을 이길 수있다. –
물론, 내 잘못입니다. 요점은 항상 jsFiddle을 제공하는 것이 었습니다. 나는 나 자신과 함께 연주했다. 이상한 이유로 자원이 제거되었습니다. 나는 그것을 지금 새롭게했다. – Rajat