我正在尝试让数据绑定在飞镖中工作。基本上我做的和这个视频一样。使用伪代码它看起来像这样:
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;
});
所以我对此有几个问题:
- 为什么变量的变化不能反映模板的变化?
- 模板不应该更新我的工作方式吗?还是 mdv/polymer 没有按照预期的方式工作?
- 是否可以手动触发模板更新?
- 是否可以轻松地将单向数据绑定转换为双向数据绑定(即通过使伪代码中的 Person 类可观察或其他方式)?
PS我在这里发布之前搜索并尝试了几件事。我发现了一个创建自定义聚合物元素的主题,这似乎比我想要的更麻烦。我还尝试了花式语法库(这并没有改进它)和数据绑定器(编译错误)。我还阅读了几页关于聚合物的内容,但我不确定什么与 dart 相关并且没有被弃用(或页面上方的警告中提到的“陈旧”)。