在Angular 7中创建自定义组件时,这是跟踪数组中更改的最佳方法吗?
示例:
export class Test {
@Input() myArray = []
// tell if array was modified (push, pop, reassigned...)
}
此外,还有更好的方法(例如可观察物等)吗?为什么?
答案 0 :(得分:1)
我将使用ngOnChanges()
进行此操作,这是Angular生命周期挂钩之一。在哪里可以找到类似的信息:
它的类型是:SimpleChange
ngOnChanges(changes: SimpleChanges){
// Detect Changes
let myArrayChange = changes['myArray'];
let currentValue = myArrayChange.currentValue;
let previousValue = myArrayChange.previousValue;
}
此外,角度变化检测仅检查对象身份,而不检查对象内容,因此不会检测到推入和弹出。因此,您可以在子组件中为该输入分配输入,而使用slice()
的{{1}}方法推入不同的对象
子组件HTML:
Array
子组件TS:
<test myArray="arr"></test>