2
因此,讓我們假設我的課是這樣的:Aurelia - 對於由computedFrom裝飾器引用的嵌套數組,沒有ModifyCollectionObserver?
import { computedFrom } from 'aurelia-framework';
export class Test {
myObj;
@computedFrom('myObj.myArray')
get someProperty() {
debugger;
return JSON.stringify(this.myObj ? this.myObj.myArray : this.myObj);
}
attached() {
this.myObj = {
myArray: []
};
setTimeout(() => this.myObj.myArray.push('foo'), 500);
}
}
和我的HTML就是:
<template>
<h3>myArray value: ${someProperty}</h3>
</template>
我有哪裏someProperty
當我把一個元素沒有被更新的問題myObj.myArray
。我使用someProperty
獲取器中的調試器對此進行了驗證。當this.myObj
最初在attached
集和someProperty
吸氣隨後被調用時,我看到myObj
是this.__observers__
一個SetterObserver
。
但是,我沒有看到任何ModifyCollectionObserver
爲myArray
在this.myObj.__observers__
(事實上,即__observers__
屬性不存在)。我期望在數組中會有某種觀察者,因爲它在我的computedFrom
裝飾器中被指定爲依賴項。
是否'@computedFrom( 'myObj.myArray.length')'工作? –
@AshleyGrant這確實有用,謝謝!如果您將其作爲答案離開,我會接受它。但是,我希望能做到這一點的方式不那麼簡單。 –
呀,不使用代理服務器,沒有,我所知道的,不幸的是少哈克的方式。 –