dart - 刷新聚合物元素

标签 dart dart-polymer

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

我做

主镖

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>

导航栏

import 'package:polymer/polymer.dart';

@CustomTag('nav-bar')
class NavBar extends PolymerElement {
  @published String mode;

  NavBar.created() : super.created();
}

当我将元素放入index.html中时,无论“mode”值如何,我总是Hello

当我使用查询更改模式时,什么也没有发生。文本应更改...

我做错事情了 ?

最佳答案

有两种方法可以解决问题

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

要么

@PublishedProperty(reflect: true) String mode;

或两者兼有(我认为最好同时应用)

关于dart - 刷新聚合物元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25044814/

相关文章:

dart - 在 dart 库中导入包时出现 Linter 警告

dart - 如何区分 Dart 类型

dart - 如何根据对象属性条件在 DART Polymer 模板中插入元素?

firebase - 如何处理 Firebase 密码重置电子邮件错误 Flutter

firebase - Firestore : Updating field in an object removes previous field

dart - Flutter ButtonRow 填充

dart - 使HTML5在Form中与多个聚合物 Dart 组件一起工作

flutter - 在不使用Flutter的情况下使用Flutter基础类型

flutter - 如何在 Flutter 中使用返回 Widget 的代码来简化 if 表达式?

Dart 聚合物 : How I can update a property from a custom element by another?