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过滤器。我只是想知道在所有情况下是否可以使用三元运算符;或者,如果有任何特殊情况,其中一个人比另一个人更受青睐。
答案 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。