2014-10-20 53 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