我有一个String字段,我希望使用文本输入来修改该字段。如何在Polymer.dart中使用@observable来执行此操作?
以下是我想与UI同步的类字段:
class Person {
@observable String name;
Person(this.name);
}
答案 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>