2014-10-20 45 views
1

在過濾器表達式中引用實際聚合物元素的最佳方式是什麼?好像this是指父母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 2014-10-20 20:57:50

+0

我已經更新了我的答案。讓我知道這是否適合你。 – 2014-10-20 21:10:43

+0

正確,好的......我現在看到我對於實際的對象'this'在過濾器中感到困惑,因爲控制檯顯示的東西與我看起來不一樣,我猜測這與重複...反正它*做*工作...謝謝 – anson 2014-10-20 21:27:05