在 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 次。