美好的一天。我似乎有问题能够在Dart对象中进行值更改,这是通过将JsProxy扩展为反映到Polymer元素中的数据绑定而创建的。见下文
person.dart
class Person extends JsProxy {
@reflectable
String name;
Person() {
name = "temp";
}
void changeVar(){
name = "Matthew";
}
}
my_element.dart
@PolymerRegister('my-element')
class MyElement extends PolymerElement{
//Runner Object
@property Person person = new Person();
//Constructor
MyElement.created() : super.created(){ }
my_element.html
<div>
[[person.name]]
</div>
现在我希望能够在自己的对象中调用changeVar()
并让它反映在Polymer元素上。如果我在调用changeVar()
后打印出变量,它会显示新值,但该值不会反映在Polymer元素中。
目前我发现改变它的唯一方法是在元素dart文件中使用set('person.name', "matthew")
。但是我不想在那里实现它。
答案 0 :(得分:2)
需要通知聚合物有关更改。这就是set()
或notifyPath()
或其他一些Polymer API方法的作用。
我没有尝试https://pub.dartlang.org/packages/polymer_autonotify,但它似乎解决了您的问题。