我想了解如何干将观察到的工作时,他们使用其他类实例的属性@observable:飞镖:干将
当我绑定的隐式getter/setter方法对“名”它在输入和更新div和一切都很好地同步。
但是,显式getter'fullname'不在HTML中更新。有没有办法做到这一点(基本上,元素绑定中的“全名”也应该更新)?也许我缺少一个二传手,但随后又制定者并没有在这里做的意义......
很简单的例子来说明:
测试element.html
<link rel="import" href="../../packages/polymer/polymer.html">
<polymer-element name="test-element">
<template>
<input value="{{ds.name}}">
<div>{{ds.name}}</div>
<div>{{ds.fullname}}</div>
</template>
<script type="application/dart" src="test1.dart"></script>
</polymer-element>
测试元.dart
import 'package:polymer/polymer.dart';
import 'package:popoli/sysmaster-settings.dart';
@CustomTag('test-element')
class TestElement extends PolymerElement {
@observable VerySimpleTest ds;
TestElement.created() : super.created() {
ds = new VerySimpleTest()..name = 'Peter';
}
}
ds.dart
class VerySimpleTest extends Observable {
@observable String name = '';
@observable String get fullname => 'Test: $name';
VerySimpleTest() : super();
}
同样感兴趣的,当你调用notifyPropertyChange明确,你不需要添加@observable注释(因此你不不需要变压器运行)。请参阅https://groups.google.com/a/dartlang.org/forum/#!topic/web/007Ij-l_hf4 – 2015-02-05 15:23:28
+乔纳斯凯洛 - 从您的链接复制:没关系。但是可能更好的是拥有@observable。如果有人试图列举一组可观察的属性,他们也可以找到你的属性。这只是额外的元数据,所以如果你的应用程序没有枚举这样的属性,你可以放心的离开它。 ChangeNotifier不关心:) – 2015-02-05 15:27:54
谢谢,在第一种方式使用符号,但在第二个值,这是正确的?所以如果这个值更加复杂,我仍然需要把它作为注释的参数。 – 2015-02-05 17:58:42