Dart 聚合物镖:是@可观察的';插入DOM的新值是多少?
假设我有一个自定义元素,它有一个Dart 聚合物镖:是@可观察的';插入DOM的新值是多少?,dart,dart-polymer,Dart,Dart Polymer,假设我有一个自定义元素,它有一个@observable Map model=toObservable({'k':'v'})和html文件中的{model['k']}中,当我更改model时,如果不使用MutationObserver观察DOM,我如何知道新值已应用于DOM 必须在地图上使用toObservable(),否则将不会插入新值 为什么需要知道DOM中的新值何时更新?如果您确实需要它,您可以收听observemap的更改 你可以听模型的变化,但这也是聚合物的作用。要在将元素添加到DOM后
@observable Map model=toObservable({'k':'v'})在dart文件中的code>和html文件中的{model['k']}
中,当我更改model
时,如果不使用MutationObserver
观察DOM,我如何知道新值已应用于DOM
必须在地图上使用toObservable(),否则将不会插入新值
为什么需要知道DOM中的新值何时更新?如果您确实需要它,您可以收听observemap
的更改
你可以听模型的变化,但这也是聚合物的作用。要在将元素添加到DOM后执行代码,您可以像
model.changes.listen((更改){
新未来(()=>doSomethingAfterDomUpdate());
});
通过这种方式,您可以给Polymer时间来完成其更新。如果我理解正确,更改
提供了更改记录
,这与映射本身有关,而不是与更改是否已应用于DOM有关。无论如何,谢谢你:)没错。但这就是为什么您有了未来的解决方案或变种观察者……如果您使用newfuture(()=>…)
延迟您的代码,那么您就知道Polymer已经更新了DOM。Polymer本身会以相同的方式收到更改通知,但会立即更新DOM。如果您使用Future(()=>…)
延迟您的代码,您的代码将在稍后的周期中执行。我不太了解事件是如何传递的以及未来是如何安排的,让我阅读更多内容并稍后确认:)