我有{{1我想用逻辑条件。
我尝试的任何绑定似乎都是 truthy :
<template is="dom-if" if=...
&#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
的正确方法是什么?
答案 0 :(得分:13)
你必须定义你的功能。
<template is="dom-if" if="[[_isEqualTo(title, 'Foo')]]">
然后在脚本中:
function _isEqualTo(title, string) {
return title == string;
}
只要属性title
发生变化,就会调用函数_isEqualTo
。所以你不必照顾观察财产或其他东西。
函数_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>