在Aurelia中,我需要从数字数组中注入数据,但它首先注入,不再注入

在Aurelia中,我需要从数字数组中注入数据,但它首先注入,不再注入,aurelia,Aurelia,在Aurelia中,我需要从数字数组中注入数据,但它首先注入,不再注入 请参见示例中的索引0的编号已很好地注入,但当编号更改时,视图不会更新 export class App { digits: number[] constructor() { this.digits = [1, 2, 3] } add() { this.digits[0]++ } } <template> <p>digit: ${digits[0]}</p

在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>
导出类应用程序{
数字:数字[]
构造函数(){
this.digits=[1,2,3]
}
添加(){
这是数字[0]++
}
}
数字:${digits[0]}

添加

谢谢大家

aurelia的阵列观测策略(V1)不适用于索引访问。 如合同中所述

Aurelia将无法使用 数组[索引]=值语法。确保Aurelia能够观察到 如果要更改阵列,请使用阵列方法: Array.prototype.push、Array.prototype.pop和Array.prototype.splice

AU2使用代理来修补数组,因此使用直接索引进行绑定也应该可以

将视图绑定到数组的第一个元素的更好方法是使用如下getter:


但请注意,也不建议这样做,因为不带
@computedFrom
的getter每秒会重新计算5次。

如果这样做会怎么样。digits=[…this.digits];就在++命令之后?@Benny是的-这会起作用的。因为它将更改数组的引用,并导致重新计算视图。