2014-10-20 5 views
1

필터 식 내부의 실제 폴리머 요소를 참조하는 가장 좋은 방법은 무엇입니까? 이 (가) template이라는 부모 개체를 나타냅니다. 필터에서 실제 폴리머 요소의 속성에 액세스해야한다면 그렇게 할 수 있습니까? 요소가 템플릿 생성 과정에서 관련성이없는 요소에 액세스하도록 만들어 지므로 요소가 처음에 완전히 만들어지지 않았습니까?폴리머 필터 표현식의 컨텍스트

편집 : 필터는 반복되는 템플릿의 내부

간단한 예 :

<template repeat="{{item in items}}"> 
    <div>{{prop | filterMethod}}</div> 
</template> 
<script> 
... 
filterMethod : function(v){ 
    return this.someProp + v; 
}, 
... 
</script> 

답변

1

내가 질문을 오해 할 수 있지만 당신이 요소 안에 식을 정의 할 때, 액세스 권한이 this에 :

<polymer-element name="my-element"> 
    <template> 
    <template repeat="{{thing in things}}"> 
     <div>{{thing | reverse}}</div> 
    </template> 
    </template> 
    <script> 
    Polymer({ 
     val: "foo", 
     created: function() { 
     this.things = ['ABC', 'DEF', 'XYZ']; 
     }, 
     reverse: function(value) { 
     return (this.val + " " + value).split('').reverse().join(''); 
     } 
    }); 
    </script> 
</polymer-element> 

이 출력은 다음과 같습니다

CBA oof 
FED oof 
ZYX oof 

당신은 http://jsbin.com/yuvoqu/edit

+0

죄송의 예를 시도 할 수 있습니다, 매우 중요한 부분이 누락 된 것이 보인다. 템플릿은 반복되는 템플릿입니다. 질문을 업데이트했습니다. – anson

+0

답변을 업데이트했습니다. 이게 효과가 있는지 알려주세요. –

+0

맞아, 알았어 ... 이제는 콘솔에 실제와 다른 모습을 보이는 'this'가 필터에 있다는 사실을 혼란스러워했다. 나는 반복과 관련이 있다고 추측한다. ... 어쨌든 * 작동합니다 ... 감사합니다. – anson