Polymer:三元运算符vs tokenlist?

时间:2015-05-29 01:47:07

标签: filter polymer ternary

Polymer expressions允许您编写三元运算符。还有一个 tokenList 过滤器,可以专门用于属性。

在我看来,以下两个呈现相同的东西。

三元运营商:     <my-element class="{{ conditional ? 'some-style' : '' }}"></my-element>

tokenList过滤器:     <my-element class="{{ {'some-style': conditional} | tokenList }}"></my-element>

我看到Topeka的作者使用三元运算符专门用于 id 属性,为 class 属性保留tokenList过滤器。我只是想知道在所有情况下是否可以使用三元运算符;或者,如果有任何特殊情况,其中一个人比另一个人更受青睐。

1 个答案:

答案 0 :(得分:1)

假设我有许多布尔属性,我必须根据它们的值应用类。如果我使用三元运算符,它看起来像这样

<my-element class="{{a? 'a': ''}} {{b?'b':''}}...{{z?'z': z}}"></my-element>

但是使用tokenList,它只是一个由tokenList

解析的简单对象
<my-element class="{{ {a:a, b:b, c:c, ... z:z} | tokenList }}"><my-element>

您可以看到它对于类非常有用,因为您可以在元素中包含许多类。

然而,注意, tokenList 以及其他过滤器或过滤器语法本身在Polymer 0.8及更高版本中不再可用。您可以改为使用computed bindings