dart-mdv数据绑定不会在更改时更新



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

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/聚合物没有按预期方式工作
  3. 是否可以手动触发模板更新
  4. 是否可以轻松地将单向数据绑定转换为双向数据绑定(即,通过使psuedocode中的Person类可观察或其他方式)

附言:在这里发帖之前,我搜索并尝试了几件事。我发现了一个创建自定义聚合物元素的主题,这似乎比我希望的更麻烦。我还尝试了花哨的语法lib(这并没有改善它)和databinder(编译错误)。我还读了几页关于聚合物的文章,但我不确定什么与dart相关,并且没有被弃用(或者页面上方的警告中提到的"过时")。

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

  • mdv_oserve
  • 观察

文档(可观测)

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

最新更新