在Aurelia,我有一个这样的文本框:
<input type="text" value.bind="contact.topics|commaList">
其中commaList
是值转换器:
export class CommaListValueConverter {
toView(value) {
return value.join('|')
}
fromView(value) {
return value.split('|')
}
}
有两件事:
从代码更新列表(contact.topics
)不会更改视图中的任何内容。试图强迫two-way
。未调用toView()
(尝试记录调用)。为了进行比较,在我看来,还有一个常规repeat topic of contact.topics
更新正常。
Aurelia通过在我的列表中添加元素contact.topics
来修改我的__array_observer__: ModifyArrayObserver
列表。所以现在我不得不在保存(或脏检查)之前清理这些不需要的元素列表。
我以这种方式更新数组:
this.contact.topics.push('test')
数组的内容在for of
循环中正确显示(未显示)。
答案 0 :(得分:1)
遗憾的是,Aurelia绑定对Array和Object内部更改没有反应。
您无法转义aurelia为观察添加的__
私有属性,但由于您检查数组是脏的,因此您可以使用arr.slice()