1
我有一个可观察的地图,它将任意对象(比如另一个地图)映射到它们的id。当我对这些对象进行更改时,对象也应在视图中更新。但是,我没有得到它的工作。这里是我的设置至今:如何更新ObservableMap中对象属性更改的视图?
myexample.html
<polymer-element name="my-example">
<script type="application/dart" src="myexample.dart"></script>
<template>
<style></style>
<div>
<ul>
<template repeat="{{ entry in map.values }}">
<li>{{ entry }}</li>
</template>
</ul>
<button on-click="{{change}}">Change</button>
</div>
</template>
</polymer-element>
myexample.dart
@CustomTag('my-example')
class MyExample extends PolymerElement {
@observable Map<int, String> map = toObservable({'123': {'name': 'XYZ', 'size': 12}});
MyExample.created() : super.created() {
map.changes.listen((_) => notifyPropertyChange(#map, 1, 0));
}
void change() {
var object = map['123']
object['size'] = 100;
map.notifyChange(new MapChangeRecord('123', null, object));
}
}
在点击 'Change'-按钮,与ID的对象' 123 '在地图中更新,但未在视图中更新。有没有人有想法,如何对视图进行更改?
不幸的是,改变地图到'@observable地图地图= toObservable({ '123':toObservable({ '名称': 'XYZ', '尺寸':12})});'不工作:该观点仍然没有修改。 – melmac 2014-10-16 20:56:01
我更新了我的答案。如果您更直接地处理这些值,它将无需任何额外的支持。似乎只是代码示例中生成的'toString()'表示没有更新(我只有一些模糊的假设)。 – 2014-10-17 13:59:38