2017-03-24 5 views
0

대시 보드에서 작업하고 있는데 여기에는 사용자가 쿼리를 입력 할 수있는 검색 패널 (구성 요소 A라고 함)이 있습니다. 이 입력의 값은 대시 보드의 다른 많은 구성 요소를 변경합니다 (직접 자손 또는 형제 인 구성 요소는 물론). 검색 값을 구성 요소 A에서 구성 요소 B로 보내려고합니다. 구성 요소 B는 입력 값으로 어떤 동작을 수행하여 응답해야합니다. 직접 구성 요소 B의 함수를 호출 다른 Polymer 구성 요소로 데이터 전달

  1. 가 전혀 작동시킬 수되지 않은 :

    나는 몇 가지를 시도했습니다.

  2. B의 로컬 속성 값을 수동으로 설정하고 옵저버를 사용하여 함수 호출을 트리거합니다. 나는 값을 설정하기 위해 관리자이지만 관찰자는 트리거하지 않습니다.
  3. 전역 변수를 사용하면 구성 요소간에 쉽게 액세스 할 수 있지만 특정 구성 요소에서는 여전히 함수를 트리거 할 수 없습니다.

어떻게하면됩니까? 내가 폴리머로 비교적 새로운 해요, 그래서 내 생각은 완전히 '중합'하지 않으면 용서 : 여러 요소에 데이터를 (보낼으로

접근 한

<dom-module id="component-B"> 
    <template> 
    </template> 
    <script> 
    Polymer({ 
     is: 'component-B', 
     properties: { 
     id: '', 
     observer: '_idUpdate' 
     }, 
     _idUpdate: function(){ 
     console.log("HELLO"); 
     } 
    }); 
    </script> 
</dom-module> 

<dom-module id="component-A"> 
    <template> 
    </template> 
    <script> 
    Polymer({ 
     is: 'component-A', 
     idSearch: function() { 
     var id = this.$.search.value; 
     document.querySelector('component-B').properties.id = id; 
     }, 
    }); 
    </script> 
</dom-module> 
+0

코드를 추가 할 수 있습니까? 특히 1과 2에 대한 접근 방법입니다. 이것은 이론을 작동시켜야합니다. [데이터 바인딩] (https://www.polymer-project.org/1.0/docs/devguide/data-binding)을 살펴볼 수도 있습니다. – Maria

+0

@Maria 작은 스 니펫을 추가했습니다. 희망이 충분합니다. id 속성의 값을 설정하는 현재의 방법은 관찰 할 수 없다고 생각합니다. 하지만 구성 요소 B의 관찰자가 트리거하도록 설정을 관찰 가능하게 만들 수 있는지 여부를 모르겠습니다. – danielvdende

답변

1

하는 수도 있지 당신이 데이터 신호

을 듣고 철 신호 태그를 사용하고자하는 모든 요소에서 다음 신호를 발사하려면 다음 두 가지 방법

  • 사용 iron-signal 중 하나를 사용할 수 있습니다) 발사 요소의 형제 자매를 수

    <iron-signals on-iron-signal-<signal-name>="<function>"></iron-signals> 
    
  • 또한 신호를 발사 한 다음 데이터를 원하는 모든 요소에 eventListeners를 추가하는 표준 HTML 방법 dispatchEvent를 사용할 수 있습니다.