聚合物中可观察的场和文本输入

时间:2013-08-16 00:02:16

标签: dart polymer

我有一个String字段,我希望使用文本输入来修改该字段。如何在Polymer.dart中使用@observable来执行此操作?

以下是我想与UI同步的类字段:

class Person {
  @observable String name;
  Person(this.name);
}

1 个答案:

答案 0 :(得分:4)

导入polymer.dart文件并将ObservableMixin混合到Person。扩展PolymerElement,并使用@CustomTag注释。

以下是使用带有自定义元素的@observable的dart文件:

import 'package:polymer/polymer.dart';

class Person extends Object with ObservableMixin {
  @observable String name;
  Person(this.name);
}

@CustomTag("custom-element")
class CustomElement extends PolymerElement {
  @observable Person person = new Person('John');
}

在关联的.html文件中,使用{{}}语法创建与@observable字段的绑定:

<!DOCTYPE html>

<html>
  <body>
    <polymer-element name="custom-element">
      <template>
        <label> Name: <input value="{{person.name}}"></label>
        <p>The name is {{person.name}}</p>
      </template>

      <script type="application/dart" src="element.dart"></script>
    </polymer-element>
  </body>
</html>

可以按以下方式使用此元素(请注意指向boot.js的链接):

 <!DOCTYPE html>

<html>
  <head>
    <title>index</title>
    <link rel="import" href="element.html">
    <script src="packages/polymer/boot.js"></script>
  </head>

  <body>
    <custom-element></custom-element>
    <script type="application/dart">
      void main() {}
    </script>
  </body>
</html>