2014-04-07 2 views
4

기본적으로 d3 선 차트를 래핑하는 사용자 지정 구성 요소를 만들었습니다. 이제 차트의 줄에 대한 클릭에 대한 콜백을 등록 할 수 있기를 원합니다. 그러나사용자 지정 구성 요소에 대한 콜백 제공

<network-summary 
    ... 
    callback="ctrl.lineClicked"> 
</network-summary> 

: 나는 콜백으로 내 컨트롤러의 기능을 지정, 구성 요소를 사용하는 경우

class NetworkSummaryComponent implements NgShadowRootAware { 
    @NgCallback('callback') 
    Function callback; 

    void onShadowRoot(ShadowRoot shadowRoot) { 
    ... 
    chart.callMethod('listen', ['line-click', (ev) { 
     var name = ev.callMethod('getLineName'); 
     print(name); 
     callback({'name': name}); 
    }]); 
    } 
} 

:

나는 구성 요소에게 내가 다음에 이벤트를 보내 @NgCallback 매개 변수를 준 그 함수는 실제로 호출되지 않습니다. 콜백이 JS 부분에서 도착한다는 것을 알았습니다. 첫 번째 스 니펫의 인쇄가 실행되기 때문입니다.

내가 대신 내가 이상한 예외 얻을 callback="ctrl.lineClicked()"과 속성을 지정하는 경우 :

Closure call with mismatched arguments: function 'call'

내가 제대로 콜백을 수행하는 방법에 대한 공식 문서를 찾을 수 없습니다를, 그래서 나는 정확히 잘 모르겠어요 내가 내가 잘못한거야 .. 어떤 생각이야?

답변

7

내가 명시 적 속성에서 예상되는 인수의 이름을 한 것으로 나타났다 :

<network-summary 
    ... 
    callback="ctrl.lineClicked(name)"> 
</network-summary> 

호프는이 문제가 다음 사람에게 유용하다.

+0

감사합니다.이 게시물을보기 전에 같은 문제가 발생하여 몇 시간을 보냈습니다. –

관련 문제