2015-01-30 3 views
0

다른 요소 내에서 폴리머 요소를 호출합니다. 내부 폴리머 요소에는 부모 폴리머에서 JSON을 바인딩 할 게시 된 특성이 있습니다. 그러나 그것은 반영되지 않습니다.JSON을 매개 변수로 사용하여 polyment 내에서 폴리머 요소 호출

<polymer-element name="parent-test" attributes="testData"> 
    <template> 

     This is Parent test 
     <child-test testdatachild="{{testData}}"></child-test> 

    </template> 
    <script> 
     Polymer('parent-test', { 
      testData: [], 
      ready: function() { 
       debugger; 
       this.testData = [1, 2, 3, 4] 
      } 
     }); 
    </script> 
</polymer-element> 


<polymer-element name="child-test" attributes="testDataChild"> 
    <template> 
     <!--{{testDataChild}}--> 
     <template repeat="{{test in testDataChild}}"> 
      {{test}} 
     </template> 


    </template> 
    <script> 
     Polymer('child-test', { 
      testDataChild: [], 
      ready: function() { 
       debugger; 
      } 
     }); 
    </script> 
</polymer-element> 

여기에서 문제가 될지 잘 모르겠습니다.

편집 : child-polymer-element를 생성 할 때 실제 parentContent가없는 것 같습니다. 하드 코딩 된 값을 this.parentContent의 준비 함수에 할당하면 잘 작동하지 않습니다. 이 parent.Content에 대한 작성 함수에 하드 코딩 된 값을 할당하면 작동합니다. 부모에게 바인딩 된 값이되기 전에 자식 폴리머 요소를 생성하는 것과 관련이 있는지 확실하지 않습니다.

Plunk이 예제는 작동하지 않는 이유는, 내가 모든 대답은 당신이 하나 맞다 구입하지 않아도 :

감사합니다, 샘 여기

+0

를 생성 할 때 실제 parentContent가없는 것 같습니다. this.parentContent에 대한 준비된 함수에 하드 코딩 된 값을 할당하면 제대로 작동하지 않습니다. 이 parent.Content에 대한 작성 함수에 하드 코딩 된 값을 할당하면 작동합니다. 그래서, 값이 부모에 바인딩되기 전에 자식 폴리머 요소를 생성하는 것과 관련이 있는지 확실하지 않습니다. – sam113

답변

2

나는 당신의 쿵하는 소리 예를 수정하고 그것은 당신의 문제를 해결하지 않고 작업을 얻을 : Plunk

<polymer-element name="child-test" attributes="testdatachild"> 
<template> 
    <br><br> 
    In Child el.: 
    <br> 
    <template repeat="{{test in testdatachild}}"> 
     {{test}} 
     <br> 
    </template> 


</template> 
<script> 
    Polymer('child-test', { 
     ready: function() { 
     } 
    }); 
</script> 

This is Parent test 
    <child-test testdatachild="{{testData}}"></child-test> 
    <br> 

</template> 
<script>     
    Polymer('parent-test', { 
     created: function() { 
      this.testData = [1, 2, 3, 4]; 
     } 
    }); 
</script> 

주요 문제는 다음 코드 내가 먼저 아이를 선언 잘 작동 생각의 순서 것으로 보인다 부모가 자식으로서 부모로서 사용된다 ... A LSO는 폴리머 문서에 기술 된대로 : 중요 polymer

는 : 객체 나 배열 인 속성의 경우, 당신은 항상 생성 된 콜백의 속성을 초기화해야한다. 프로토 타입 (또는 게시 객체)에 직접 기본값을 설정하면 동일한 요소의 여러 인스턴스에서 예기치 않은 "공유 상태"가 발생할 수 있습니다.

+0

굉장한 돌풍. 참조 변경은 작동합니다. 나는 지금 어리 석다. :피 – sam113

1

작동하면 코드의 예를 수정

<!-- This won't work cause: 
     "Attributes on child-test were data bound prior to Polymer upgrading the element. 
     This may result in incorrect binding types." --> 
     This is Parent test 
    <child-test testdatachild="{{testData}}"></child-test> 
+0

참조 변경 작업. – sam113

관련 문제