2017-05-14 1 views
0

behaviors을 사용하여 학습하고 있으며 사용자 지정 요소의 동작 속성을 업데이트하는 것이 다른 사용자 지정 요소에 반영되지 않는 문제에 봉착했습니다. 예 : behavior.html, profile.html, toolbar.html을 만들었습니다. 프로필 및 툴바는 behavior.html을 사용하고 있습니다. 따라서 사용자가 profile.html에서 특정 작업을 수행 할 때 behavior.html의 속성을 업데이트하고 있습니다. Bur toolbar.html에 업데이트 된 값이 표시되지 않습니다.사용자 지정 요소에서 동작 속성을 업데이트하는 방법

아래에 샘플 스 니펫을 붙여 넣습니다. 내가 잘못하고있는 부분에 대한 제안 사항이 있으면 알려주십시오. 내가 initializ 그게 무엇 때문에

behavior.html

<script> 
window.MyBehaviors = window.MyBehaviors || {}; 
MyBehaviors.SheetsBehaviorImpl = { 
     properties: { 
      isActiveUser: { 
       type: Boolean, 
       value: false, 
       notify: true 
      } 
    } 
MyBehaviors.SheetsBehavior = [ 
    Polymer.AppNetworkStatusBehavior, 
    MyBehaviors.SheetsBehaviorImpl 
]; 

profile.html

..... 
isUserRegisted: function(changeRecord) { 
     MyBehaviors.SheetsBehaviorImpl.properties.isActiveUser = this.userlist.approved; 
     //Do some more checks and return a boolean based on the checks 
    }, ..... 

toolbar.html

<span>{{isActiveUser}}</span> 

도구 모음은 항상 저를 거짓 표시되어 에. 또한 툴바는 AppNetworkStatusBehavior에서 '온라인'이라는 다른 속성을 공유하며 그 속성은 항상 미세한 반영을 나타냅니다. 즉, 오프라인으로 전환하면 오프라인에 반영되고 온라인으로 전환하면 온라인으로 표시됩니다. 그래서 행동을 도구 모음에서 잘 작동하고 가정, 그것은 문제가 내 자신의 속성을 업데이트하는 것 같다.

답변

0

behavior 잘못된 방법으로 구성 요소간에 일부 코드를 공유하기 때문에 사용하려고하면 생각합니다. 그래서 당신은 다른 솔루션을 사용할 수 있습니다 데이터 바인딩 또는 발사 같은 일부 custom event 및 속성 값을 다른 요소 내부에 설정

+0

나는 본다! 그래, 내 현재의 구현은 데이터 바인딩이고, 잘 동작하고있다. 그러나 여러 항목을 사용할 때이 기능을보다 쉽게 ​​느낄 수있었습니다. AppNetworkStatusBehavior는 모든 요소에서 "온라인"변수를 사용할 수있게하고, 오프라인으로 이동하면 모든 요소가 응답합니다. 그래서 나는 다른 커스텀 요소를 공유하는 몇 가지 기본 속성에 대해 이와 비슷한 것을 얻을 수 있다고 생각했습니다. – Srikanth

+0

그래,이 경우 전역 변수를 사용할 수 있습니다. – Dmitry

관련 문제