【问题标题】:How to set selectedIndex of AngularMaterial.Stepper based on @Input() array length如何根据 @Input() 数组长度设置 AngularMaterial.Stepper 的 selectedIndex
【发布时间】:2020-07-09 14:30:45
【问题描述】:

我有一个表示对象数组的材料步进器。我正在尝试将角度材料 v9 步进器的当前步长设置为对象数组的最后一个元素。问题是对象数组是一个组件输入,我认为材质步进器在@Input() 得到解决之前被渲染,所以我得到一个Error: cdkStepper: Cannot assign out-of-bounds value to 'selectedIndex'. 错误。

我认为如果我在 ngAfterViewInit() 中以编程方式设置选定的索引,我就能让它工作

ngAfterViewInit() {
  this.stepper.selectedIndex = this.inputArray.length;
}

但这似乎仍然会引发错误。我应该在哪里设置这个,以便在渲染材料步进器之后正确设置所选索引,并且在组件接收到输入之后?

请注意,我看到 MatStepper 类上有许多“生命周期钩子”,但我在材料文档中没有看到任何关于它们的文档。

【问题讨论】:

    标签: angular angular-material angular-material-stepper


    【解决方案1】:

    您可能正在使用像 array.push 这样的不可变数组来设置父组件中的值。而是使用可变数组,如 array = array.push。这样,变更检测将捕获变更。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-08-14
      • 2021-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-11
      • 1970-01-01
      相关资源
      最近更新 更多