我如何用" dom-if&#34 ;?在polymer1.0中写条件?

时间:2015-08-18 10:24:45

标签: if-statement polymer

我的代码如下:

select e.eventid,IFNULL(SUM(c.clicks),0) as TotalClicks
from events e LEFT JOIN
     clicks c on e.eventid=c.eventid
group by e.eventid
order by SUM(c.clicks)

item.hasAttach = true / false

但我想检查这个条件,如果: item.content_format_code ==' PDF'

<template is="dom-if" if="{{item.hasAttach}}">
     <i class="fa fa-paperclip"></i>
</template>

应该像 {{item.content_format_code ==&#39; PDF&#39;}} = true / false 但它没有测试这个。 我想根据文件类型显示图标。 item.content_format_code ==&#39; PDF&#39; 未选中 true / false 。在聚合物中,它仅将真/假作为条件实际值,但不检查表达式。 请帮助我。

3 个答案:

答案 0 :(得分:13)

您可以使用computed bindings

定义一个计算表达式并将其绑定到dom-if的函数。

<template is="dom-if" if="[[isFormat(item.content_format_code, 'PDF')]]">
     <i class="fa fa-pdf"></i>
</template>

Polymer({
    is: "my-element",
    isFormat: function(code, format) {
        return code === format;
    }
});

答案 1 :(得分:9)

目前,聚合物仅支持简单的条件构造。这意味着您无法编写类似

的内容
[[ item.something == 'CONDITION' ]]

您有两个选择:

  1. 用于条件的项目是布尔值,而不是简单地写

    [[ item ]]
    

    [[ !item ]]
    

    会奏效。您可以使用的唯一操作员是&#39;!&#39;

  2. 条件更复杂,use computed bindings

    [[ _computeResult(item) ]]
    

答案 2 :(得分:0)

我刚刚做了类似的事情,如果你有权访问你的数据,那么只需要一个像“is-PDF,is-JPG,is-PNG”这样的布尔值列表就容易多了。那你就可以做;

<template is="dom-if" if="[[item.is-PDF]]">

这就是我最终做的事情。