1

我正在尝试让数据绑定在飞镖中工作。基本上我做的和这个视频一样。使用伪代码它看起来像这样:

mdv.init();
var p = new Person('john');
query('#someId').model = p;

在 html 文件中,我还有一个可以正常工作的模板。现在我只是试图让数据绑定工作的一种方式,虽然模板已正确初始化,但对变量 p 的后续更改在模板中不可见。我试图触发这样的更新

node.model = null;
node.model = p;

但是,这不会触发更新。但如果我使用延迟它确实有效:

node.model = null;
new Timer(new Duration(milliseconds:20),(){ 
  node.model = p;
});

所以我对此有几个问题:

  1. 为什么变量的变化不能反映模板的变化?
  2. 模板不应该更新我的工作方式吗?还是 mdv/polymer 没有按照预期的方式工作?
  3. 是否可以手动触发模板更新?
  4. 是否可以轻松地将单向数据绑定转换为双向数据绑定(即通过使伪代码中的 Person 类可观察或其他方式)?

PS我在这里发布之前搜索并尝试了几件事。我发现了一个创建自定义聚合物元素的主题,这似乎比我想要的更麻烦。我还尝试了花式语法库(这并没有改进它)和数据绑定器(编译错误)。我还阅读了几页关于聚合物的内容,但我不确定什么与 dart 相关并且没有被弃用(或页面上方的警告中提到的“陈旧”)。

4

1 回答 1

0

您需要以下软件包之一,以便在更改时自动更新绑定。

文档(Observables)

我仍然建议您将“聚合物”作为依赖项(删除 mdv)添加到您的 pubspec.yaml。这样您就不必处理版本问题,并且可以保证一组“已确认”的软件包一起工作。

于 2013-09-30T13:05:11.953 回答