使用jquery attr时,Aurelia不会更新绑定值

使用jquery attr时,Aurelia不会更新绑定值,aurelia,Aurelia,我正在更新html元素的数据属性: $element.attr('data-x', 500); “data-x”属性在视图中绑定: <div class="cell" data-x.bind="aViewModelProperty"> 加载视图时,将从viewmodel中正确读取该值,并将其读入DOM中的data-x属性。如果更新了data-x属性的值(使用第一个“attr”-语句),则该值永远不会推送到viewmodel,因此绑定似乎是单向的 用例是,我有一个第三方库,

我正在更新html元素的数据属性:

    $element.attr('data-x', 500);
“data-x”属性在视图中绑定:

<div class="cell" data-x.bind="aViewModelProperty">
加载视图时,将从viewmodel中正确读取该值,并将其读入DOM中的data-x属性。如果更新了data-x属性的值(使用第一个“attr”-语句),则该值永远不会推送到viewmodel,因此绑定似乎是单向的

用例是,我有一个第三方库,它直接更新DOM上的数据属性,我希望这些更改被推送到viewmodel,它的属性绑定到数据属性

注:

明确指定双向绑定会产生以下错误:

错误[app router]错误:不支持观察“LABEL”元素的“data-x”属性。(…)


Darn..

如果您有属性,为什么不使用
this.x=item.x
而不是jQuery attr?我没有属性属性属性名称是
data-x.bind
,而不是
data-x
。但是,从奥雷利亚世界以外的地方设置它并不会触发重新估值。参见此示例,在3秒后,我将值从初始值“初始”更改为“新”。如果检查DOM,您可以看到3秒钟后,它会说
value.bind
是“新的”,但视图没有更新(
initial
)。gist.run/?id=88C2A87D9E7FCFC9789476BE27460093如果您有属性,为什么不使用
this.x=item.x
而不是jQuery attr?我没有属性属性属性名称是
data-x.bind
,而不是
data-x
。但是,从奥雷利亚世界以外的地方设置它并不会触发重新估值。参见此示例,在3秒后,我将值从初始值“初始”更改为“新”。如果检查DOM,您可以看到3秒钟后,它会说
value.bind
是“新的”,但视图没有更新(
initial
)。要点.运行/?id=88c2a87d9e7fcfc9789476be27460093
aViewModelPropertyChanged(newValue) {
    alert(newValue);
}