聚合物1.0在其自身内改变Dart对象的场以反映聚合物

时间:2015-12-27 04:45:29

标签: dart polymer-1.0 dart-polymer

美好的一天。我似乎有问题能够在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")。但是我不想在那里实现它。

1 个答案:

答案 0 :(得分:2)

需要通知聚合物有关更改。这就是set()notifyPath()或其他一些Polymer API方法的作用。

我没有尝试https://pub.dartlang.org/packages/polymer_autonotify,但它似乎解决了您的问题。