我想检测属性更改,然后刷新元素。
我做
main.dart
library main;
import "package:polymer/polymer.dart";
import "dart:html";
void main() {
initPolymer().run(() {
Polymer.onReady.then((e) {
querySelector("nav-bar").setAttribute("mode", "ok");
});
});
}
navbar.html
<link rel="import" href="packages/polymer/polymer.html">
<polymer-element name="nav-bar" attributes="mode">
<template if="{{mode == null}}">
<p>Hello</p>
</template>
<template if="{{mode == 'ok'}}">
<p>Youpie</p>
</template>
<script type="application/dart" src="navbar.dart"></script>
</polymer-element>
navbar.dart
import 'package:polymer/polymer.dart';
@CustomTag('nav-bar')
class NavBar extends PolymerElement {
@published String mode;
NavBar.created() : super.created();
}
当我将我的元素放在index.html中时,无论“模式”值如何,我总是Hello
。
当我使用查询更改模式时,没有任何反应。文本应该改变......
我做错了什么?
答案 0 :(得分:1)
有两种方法可以解决问题
querySelector("nav-bar").mode = "ok");
或
@PublishedProperty(reflect: true) String mode;
或两者(在我看来最好同时适用)