gpt4 book ai didi

angular - 为什么 angular 2 ngOnChanges 不响应输入数组推送

转载 作者:太空狗 更新时间:2023-10-29 16:53:24 24 4
gpt4 key购买 nike

我的 Angular 应用程序遇到了问题,我将输入用作数组并在点击事件出现时将值推送到数组。但是 ngOnChanges 不会在数组推送完成时触发。有没有办法触发 ngOnChange

我的代码是ts文件是

@Component({
selector: 'adv-search',
templateUrl: './app/modules/result.html'
})

export class InputComponent {
@Input() metas:any=[];

ngOnChanges() {
console.log(this.metas);
}
}

我的选择器标签

<adv-search [metas] = "metaIds"></adv-search>

点击事件代码

insertIds(id:any) {
metaIds.push(id);
}

最佳答案

Angular 变化检测仅检查对象身份,不检查对象内容。因此不会检测到插入或移除。

你可以做的是在每次更新后复制数组

insertIds(id:any) {
this.metaIds.push(id);
this.metaIds = this.metaIds.slice();
}

或使用 IterableDifferngDoCheck 中检查 InputComponent 内的更改,就像 NgFor 一样。

关于angular - 为什么 angular 2 ngOnChanges 不响应输入数组推送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43223582/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com