Polymer Dart绑定到大型模型

timecc

我需要显示来自相当大的Dart模型的数据。我像这样模拟我的模型层次结构:

// Tx contains a Ty
class Tx { Ty y = new Ty(); }

// Ty contains a Tz
class Ty { Tz z = new Tz(); }

// and Tz contains the field we want to display
class Tz extends Object with Observable {
  @observable String ws = 'foo';
  }

在自定义组件中,我实例化了仿真模型,并在调整浏览器窗口大小时对其进行了更新:

@CustomTag('x-a')
class Xa extends PolymerElement {

  Tx x = new Tx();    // instantiate my 'model'

  @observable String  w  = '-';
  @observable String  w2 = '-';

  //-----------------------------------
  Xa.created() : super.created();

  //-----------------------------------
  @override void attached() {
    super.attached();

    w = x.y.z.ws;    // attach the local variable to a variable in my model?

    window.onResize.listen((e) {              // browser window resize event
      x.y.z.ws = e.currentTarget.innerWidth.toString();  // works OK
      w2       = e.currentTarget.innerWidth.toString();  // works OK
      print('w=${w}  x.y.z.ws=${x.y.z.ws}  w2=${w2}');   // w never changes
      });
    }
  }

为了完整起见,以下是组件实例化:

<polymer-element name="x-a">
  <template>
    <div>w={{w}}. w2={{w2}}.</div>
  </template>
  <script type='application/dart' src='xa.dart'></script>
</polymer-element>

w2字符串被正确地更新,因为是ws字符串的类层次深跌。@observable String w永远不会改变。我已经试过的数不胜数的组合@observable@published@reflectable@PublishedProperty,和他们的朋友。有人知道要在class变量上使用的咒语使其可观察吗?

若奥·比里巴(JoaoBiriba)

我用以下方法解决了您的问题:

@CustomTag('x-a')
class Xa extends PolymerElement {

  Tx x = new Tx();    // instantiate my 'model'

  @observable String  w  = '-';
  @observable String  w2 = '-';

  //-----------------------------------
  Xa.created() : super.created();

  //-----------------------------------
  @override void attached() {
    super.attached();

    w = x.y.z.ws;    // attach the local variable to a variable in my model?

  void convert(List<ChangeRecord>changes) {
    w = changes.first.newValue;
  }

  x.y.z.changes.listen(convert);


    window.onResize.listen((e) {              // browser window resize event
      x.y.z.ws = e.currentTarget.innerWidth.toString();  // works OK
      w2       = e.currentTarget.innerWidth.toString();  // works OK
      print('w=${w}  x.y.z.ws=${x.y.z.ws}  w2=${w2}');   // w never changes
      });
    }
  }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Polymer Dart绑定到大型模型

来自分类Dev

将Polymer按钮绑定到Dart代码

来自分类Dev

将Polymer按钮绑定到Dart代码

来自分类Dev

自动绑定模型中的Polymer Dart $ []选择器

来自分类Dev

自动绑定模型中的Polymer Dart $ []选择器

来自分类Dev

Polymer-Dart铁清单未绑定到选定项目

来自分类Dev

Polymer 2.0 数据绑定 - 从 html 属性到 Polymer 类

来自分类Dev

列表的Dart / Polymer绑定对象属性

来自分类Dev

在polymer.dart中绑定表格

来自分类Dev

Dart Polymer条件模板

来自分类Dev

绑定到Polymer中的全局变量

来自分类Dev

Dart Polymer核心选择器多项选择绑定到选定项不起作用

来自分类Dev

Dart + Polymer,如何绑定到以编程方式生成的元素,textarea,select,optgroup

来自分类Dev

如何将Polymer元素绑定到ASP.NET中的模型

来自分类Dev

Polymer Dart作为SPA框架

来自分类Dev

Observe package from polymer dart

来自分类Dev

Polymer.Dart事件侦听

来自分类Dev

Polymer Dart @initMethod未执行

来自分类Dev

Polymer.Dart事件侦听

来自分类Dev

Polymer Dart是基于哪个版本的?

来自分类Dev

飞镖导入包:polymer / polymer.dart错误

来自分类Dev

飞镖导入包:polymer / polymer.dart错误

来自分类Dev

Polymer Dart,全局变量和数据绑定(可观察)

来自分类Dev

是否支持Polymer.dart中的命令式髭须绑定?

来自分类Dev

Polymer Dart,全局变量和数据绑定(可观察)

来自分类Dev

Polymer Core-List演示到Dart代码

来自分类Dev

将数据绑定到Polymer中的内容元素

来自分类Dev

Angular Dart和Polymer Dart之间的区别

来自分类Dev

大型模型的QCompleter