2012-10-23 3 views
3

다음 코드에서 내 이벤트 위임을 클릭하고 모든 세 클릭 내 뷰 계층 구조의 처리기가 실행됩니다.대상에 대한 이벤트 위임

그러나 전체보기 계층에서을 '편집'으로 실행하고 싶습니다. '편집'은 단순히 내 '하위'보기에있는 요소의 대상입니다.

템플릿

<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입니다 : 내가이 원하는 해달라고 하는 것은 이것이다.

+0

당신이 제공하는 경우 :

Ember.View.reopen({ click: function(event){ if(event.view !== this && this[event.actionName]){ return this[event.actionName](event); } } }) 

여기에 바이올린을 참조하십시오

내가 찾은 유일한 해결 방법은 Ember.View 클래스 자체를 다시 열고이 같이 클릭 핸들러를 오버라이드 (override)하는 것입니다 JSFiddle, 실제로 작동하는 것을 제공하십시오. 바이올린을 제공하는 것은 단지 코드를 보는 것이 아니라 실제로 코드를 사용하는 것입니다. 나는 Ember를 바이올린 내부에 설치해야한다면 그 목적을 이길 수있다. –

+1

물론, 내 잘못입니다. 요점은 항상 jsFiddle을 제공하는 것이 었습니다. 나는 나 자신과 함께 연주했다. 이상한 이유로 자원이 제거되었습니다. 나는 그것을 지금 새롭게했다. – Rajat

답변

2

일주일 전에 게시 한 질문과 같습니다. 내가 볼 수있는 한 이러한 기능은 구현되지 않습니다. 이벤트는 뷰 계층으로 전파되지만 조치 이름은 유실되며 기본 click 핸들러가 트리거됩니다.

http://jsfiddle.net/Sly7/zZyCS/

+0

나는 당신이 여기에서 한 것을 봅니다. 나는 이것이 지원되기를 기대하고 있었다. – Rajat

+0

Ember가 자연스럽게 지원해야하는지 여부에 대한 의견이 있으십니까? @ sly7_7 – Rajat

+1

@joliss로부터이 댓글보기 : http://stackoverflow.com/questions/12918112/how-can-i-make-custom-events-that-bubble-through-the-view-hierarchy#comment17706531_12918112 –