在 Aurelia 中——我需要从数字数组中注入数据,但它首先注入,不再注入
in Aurelia - I need to inject data from array of numbers, but it injected in first and no more
在 Aurelia 中 - 我需要从数字数组中注入数据,但它首先注入,不再注入。
在示例中看到索引 0 的编号注入良好,但是当编号更改时,视图没有更新。
export class App {
digits: number[]
constructor() {
this.digits = [1, 2, 3]
}
add() {
this.digits[0]++
}
}
<template>
<p>digit: ${digits[0]}</p>
<button click.trigger="add()">add</button>
</template>
谢谢大家
aurelia 的数组观察策略(在 V1 中)不适用于索引访问。
如 docs
中所述
Aurelia will not be able to observe changes to arrays using the
array[index] = value syntax. To ensure that Aurelia can observe the
changes on your array, make use of the Array methods:
Array.prototype.push, Array.prototype.pop and Array.prototype.splice.
AU2 使用代理来修补数组,因此使用直接索引进行绑定也应该有效。
将视图仅绑定到数组的第一个元素的更好方法是使用 getter,如下所示:https://codesandbox.io/s/stoic-payne-okrzk?file=/src/app.html
但请注意,也不推荐这样做 - 因为没有 @computedFrom
的 getter 每秒会重新计算 5 次。
在 Aurelia 中 - 我需要从数字数组中注入数据,但它首先注入,不再注入。
在示例中看到索引 0 的编号注入良好,但是当编号更改时,视图没有更新。
export class App {
digits: number[]
constructor() {
this.digits = [1, 2, 3]
}
add() {
this.digits[0]++
}
}
<template>
<p>digit: ${digits[0]}</p>
<button click.trigger="add()">add</button>
</template>
谢谢大家
aurelia 的数组观察策略(在 V1 中)不适用于索引访问。 如 docs
中所述Aurelia will not be able to observe changes to arrays using the array[index] = value syntax. To ensure that Aurelia can observe the changes on your array, make use of the Array methods: Array.prototype.push, Array.prototype.pop and Array.prototype.splice.
AU2 使用代理来修补数组,因此使用直接索引进行绑定也应该有效。
将视图仅绑定到数组的第一个元素的更好方法是使用 getter,如下所示:https://codesandbox.io/s/stoic-payne-okrzk?file=/src/app.html
但请注意,也不推荐这样做 - 因为没有 @computedFrom
的 getter 每秒会重新计算 5 次。