刷新聚合物元素

时间:2014-07-30 18:59:37

标签: dart dart-polymer

我想检测属性更改,然后刷新元素。

我做

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

当我使用查询更改模式时,没有任何反应。文本应该改变......

我做错了什么?

1 个答案:

答案 0 :(得分:1)

有两种方法可以解决问题

querySelector("nav-bar").mode = "ok");

@PublishedProperty(reflect: true) String mode;

或两者(在我看来最好同时适用)