对于实验,我使用https://www.dartlang.org/docs/tutorials/polymer-intro/
中的自定义元素 tute-stopwatch当我为按钮设置属性'.hidden = true'时,这些按钮会成功隐藏,但元素tute-stopwatch
不会隐藏。
void addChild(Event e, var detail, Node target) {
..
stopButton.hidden = true;
startButton.hidden = true;
resetButton.hidden = true;
this.hidden = true;
}
当我在tute_stop_watch.html中使用subtemplate时:
<template if="{{ visible }}" id="innerTemplate">
和tute_stop_watch.dart:
void enteredView() {
super.enteredView();
startButton = $['startButton']; // $['startButton'] == null
innerTemplate =$['innerTemplate'] // find correct, but innerTemplate.childNodes == []
我尝试使用所有能力制作元素tute-stopwatch按需显示。
答案 0 :(得分:3)
将以下样式添加到聚合物元素中:
<polymer-element name="tute-stopwatch">
<template>
<style>
/* old style for current Dartium */
@host {
* {
display: inline-block;
position: relative;
overflow: hidden;
}
[hidden], .hidden {
display: none;
}
}
/* new style for Chromium */
:host {
display: inline-block;
position: relative;
overflow: hidden;
}
:host([hidden]:host, .hidden:host) {
display: none;
}
</style>
<button>xxx</button>
...
<template>
<script type="application/dart" src='toute-stopwatch.dart'></script>
</polymer-element>
您可以通过设置hidden
属性或添加/删除班级hidden
来使元素可见/隐藏。
答案 1 :(得分:1)
您可以隐藏整个模板:
<template>
<template if="{{ visible }}">
CONTENT
</template>
</template>
其中visible
是@published
布尔值。
然后你可能在dart中有一个方法,如:
void hide() {
visible = false;
}
您可以使用HTML中的点击链接拨打电话。