2017-02-05 6 views
0

자식 요소에서 부모 요소까지 사용자 지정 이벤트를 발생 시키려고하지만 리스너 개체를 사용하여 작동하지 않습니다. 그것은 주석 이벤트를 사용하여 작동하지만 대부분의 경우 적용 할 수 없습니다.이 경우에는 리스너 객체를 어떻게 사용할 수 있습니까? 여기에 문제를 설명하기 위해 몇 가지 코드입니다 : 당신의 도움에 미리부모 요소에 의해 catch되지 않는 자식 요소에 의해 발생 된 폴리머 사용자 정의 이벤트

<!--in child element's dom..--> 

<dom-module id="searchresult-controller"> 
    <template> 
     <style> 
      ... 
     </style> 
    </template> 
    <script type="text/javascript"> 
     Polymer({ 
      is: "searchresult-controller", 

       ready: function(){ 
        this.sendSignal(); 
      }, 

      sendSignal: function() { 
       this.fire('msg', {data: 'i love polymer'}); 
      } 
     }); 
    </script> 
</dom-module> 

<!-- in parent --> 
<dom-module id="search-controllers"> 
<template> 
    <style> 
     ... 
    </style> 
    <searchresult-controller></searchresult-controller> 
    <result-view></result-view> 
</template> 

<script type="text/javascript"> 
    Polymer({ 
     is: "search-controllers", 

     listeners: { 
      'msg': '_showAlert' 
     }, 
     _showAlert: function(e) { 
      console.log(e.detail.data); 
     } 

    }); 
</script> 

감사합니다.

답변

0

searchresult-controller에서 attached에있는 이벤트를 실행하고 ready이 아닌 것을 시도해 볼 수 있나요?

readysearch-controllersaccording to the docs, 때문에, listeners 개체에 설정된 청취자가 attached 라이프 사이클 이벤트 기간 동안 설정 처리하기 위해 너무 빨리이 될 수 있습니다.

내 생각에 searchresult-controllerready 이벤트가 발생하기 전에 search-controllersattached 이벤트가 발생합니다.

+0

d docs에 대한 참조에 대해 감사드립니다. 아직도 이벤트에 관해서는, 나는 main.js에서 철 신호 이벤트를 발사하려했다. var event = new CustomEvent ('iron-signal', { 'detail': {name : 'action', data : "foo" }})); document.dispatchEvent (event); 다른 요소는 철 신호를 사용하여 청취했지만 결과는 없습니다. 어떻게하면 좋을지, 고분자 덕분에 좋은 책을 구할 수 있습니다. 고분자 덕분에 앱을 만드는 기초에 대한 이해를 바탕으로 강력한 기반을 구축해야하기 때문에 추천 할 수 있습니다. – jobie

+1

어떻게''을 설정 했는가? 더 구체적으로 어떻게'action' 이벤트를 들으려고 했습니까? 나는 책에 대해서 모른다. 그러나 나는 GitHub의 [Polymer components source code] (https://github.com/PolymerElements)를 읽으면 많은 것을 배울 수있다. –