javascript - Angular:输入绑定(bind)不更新

标签 javascript angular typescript

我目前在尝试将列表绑定(bind)到 Angular 中的输入对象时遇到问题。我希望每次添加到列表时子项中的插值都会更新,但原始加载值在 View 中保持不变。即使 OnChange 也不会触发,我已经为此苦苦挣扎了几个小时,如有任何帮助,我们将不胜感激。

父级

<main-task-list [in-list]='list_values'></main-task-list>
@Component({
   selector: 'main-app',
   templateUrl: './main-app.component.html',
   styleUrls: ['./main-app.component.sass']
})
export class MainAppComponent implements OnInit {
  list_values = [ 10, 20, 30 ]

   add_to_list(){
      this.list_values.push(12)
      console.log( this.list_values )
   }
}

child

<div>{{in_list}}</div>
@Component({
  selector: 'main-task-list',
  templateUrl: './main-task-list.component.html',
  styleUrls: ['./main-task-list.component.sass']
})
export class MainTaskListComponent implements OnInit {
  @Input( 'in-list') in_list: number[] | null = null

  ngOnChanges( changes: SimpleChanges ){
     console.log('re render')
  }
}

最佳答案

当您向其中推送值时,您的项目的引用不会改变。它需要改变。尝试创建一个新项目,ngOnChange 将再次触发:

this.list_values = [...this.list_values,12]

代替

this.list_values.push(12)

关于javascript - Angular:输入绑定(bind)不更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58963265/

相关文章:

javascript - 使用 node.js 的断言引发的测试错误

javascript - 如何在特定条件下从动态数据中过滤结果

javascript - 在内部函数 typescript 中访问外部变量

javascript - 如何将一个 JavaScript 文件包含在另一个不是从浏览器内部运行的 JavaScript 文件中?

javascript - 如何在 AngularJS 中向二维数组添加项目

javascript - 如何使用 ngx-auto-unsubscribe 测试我是否已取消订阅?

angularjs - 带有 typescript Controller 的 Angular

typescript - 将 extends keyof 用作泛型类型时出现 'never' 类型错误

javascript - 如何在 NodeJs 中使用请求进行多个 API 调用?

angular - 元标记未在查看源代码中更新 - Angular