Seth Ladd 的 Polymer.dart 示例非常棒且非常有用。observable_list示例将DateTime
实例附加到ObservableList timestamps
. 虽然DateTime
没有扩展Observable
,但修改my_element.html以访问上的字段
{{ts in timestamps}}
在 Dart VM 中运行时工作。例如,改变
<li>{{ts}}</li>
至
<li>{{ts.second}}</li>
DateTime.seconds
在 Dart VM 上时将访问该字段。但是,当 dart2js 将应用程序编译为 javascript 时,对 Polymer 表达式中的字段的访问被破坏。在这种情况下会抛出异常Uncaught Error: RangeError: value 0
,或者更一般地NoSuchMethodError : method not found: 'Symbol(...)'
是抛出字段名(请参见此处的示例)
如果类扩展,则在编译为 Javascript 后,对 Polymer 表达式内部的字段的Observable
访问工作(将本示例中的类更改为不会在 javascript 中引发异常)。@observable
MyRow
extends Observable
当我无法向外部类添加注释时,我该怎么办DateTime
?这只是 dart2js 生成中的当前错误,还是 Polymer.dart 规范会禁止从不可观察的类中读取字段?以前,在编译为 javascript 后,从我们的dart-protobufweb_ui
生成的类中成功访问了字段,所以我希望这个用例也能在 Polymer.dart 中获得支持。