使用<template is =“dom-if”with =“”a =“”condition =“”

时间:2017-04-18 09:30:26

标签: polymer polymer-1.0 dom-if

=“”

我有{{1我想用逻辑条件。

我尝试的任何绑定似乎都是 truthy

&#13;
&#13;
<template is="dom-if" if=...
&#13;
&#13;
&#13;

<link href="https://polygit.org/components/polymer/polymer.html" rel="import"> <dom-module id="test-thing"> <template> <template is="dom-if" if="{{title == 'foo'}}" restamp> Title is <b>FOO</b> </template> <template is="dom-if" if="{{title}} == 'bar'" restamp> Title is <b>BAR</b> </template> Actual: "{{title}}" </template> <script> Polymer({ is: 'test-thing', properties: { title: {type: String,value:''} } }); </script> </dom-module> <div> Title: foo<br> <test-thing title="foo"></test-thing> </div> <div> Title: bar<br> <test-thing title="bar"></test-thing> </div> <div> Title: abc<br> <test-thing title="abc"></test-thing> </div>条件应用于if dom-if的正确方法是什么?

3 个答案:

答案 0 :(得分:13)

你必须定义你的功能。

<template is="dom-if" if="[[_isEqualTo(title, 'Foo')]]">

然后在脚本中:

function _isEqualTo(title, string) {
  return title == string;
}

只要属性title发生变化,就会调用函数_isEqualTo。所以你不必照顾观察财产或其他东西。

使用2个参数调用

函数_isEuqalTo,第二个参数只是要与某些值进行比较的纯字符串。

答案 1 :(得分:3)

您可以在绑定中使用的唯一逻辑不是。 例如:

<template is="dom-if" if="{{_isEqualTo(title, 'Foo')}}">
<template is="dom-if" if="{{!_isEqualTo(title, 'Foo')}}">

答案 2 :(得分:1)

如果您的数据是Foo是布尔值或具有&#34; Foo&#34;:true或&#34; isFoo&#34;:true的属性。然后你可以这样做:

<template is="dom-if" if="{{isFoo}}">
   Foo
</template>