我正在使用条件模板来分发传递给元素的内容。如果条件为真,则显示第一个内容元素,否则显示第二个内容元素。我注意到,当我更新条件时,已经分发的内容不会更新。一旦可见,它将保持可见。 我的第一次尝试看起来像这样:
<template is="dom-if" if="{{test}}">
<content select=".first">
</content>
</template>
<template is="dom-if" if="{{!test}}">
<content select=".second">
</content>
</template>
如果内容包含在另一个元素中,我注意到它会起作用。
<template is="dom-if" if="{{test}}">
<div>
<content select=".first">
</content>
</div>
</template>
<template is="dom-if" if="{{!test}}">
<div>
<content select=".second">
</content>
</div>
</template>
我创建了一个plunker来演示这两种情况。 这种行为有解释吗?是故意还是错误?
答案 0 :(得分:0)
这实际上是每个设计。这是Polymer团队在Github上的issue上所说的内容。
隐藏
<content>
对其分布式子级(每个规范)的可见性没有影响,因此您的选择是使用可隐藏的包装器元素包装内容(并隐藏已分发的子级),或者使用restamp
将<content>
全部拉出DOM。 restamp和非restamp设置的工作方式略有不同,但它是非restamp行为的结果,它隐藏而不是将DOM作为性能优化销毁。