angular - Onchanges Angular4 不起作用
问题描述
我的代码在 Init 上工作,但在 onChanges 上没有。
这是来自组件的代码
import { Component, Input, OnInit, OnChanges, SimpleChanges } from '@angular/core';
export class FetchDataComponent implements OnChanges {
site: string[] = [];
@Input() values: string = "https://angular.io";
onEnter(value: string) { this.values = value; } // this is to get value from input field
ngOnChanges(changes: SimpleChanges) {
var slog = this.values;
this._httpService.get('/api/websites/?angular='+slog).subscribe(values => {
this.site= values.json() as string[];
});
}
我尝试按照指南https://www.concretepage.com/angular-2/angular-2-4-onchanges-simplechanges-example进行操作,该指南针对 Angular 4。
相同的代码正在使用 onInit 但我需要它来监视对 onChanges 所做的更改
解决方案
当组件的输入属性上的数据绑定更改时,将自动调用诸如 ngOnChanges 之类的角度生命周期挂钩方法。
请检查这些 stackblitz URL https://stackblitz.com/edit/angular-hpshn4?file=src%2Fapp%2Femployee%2Femployee.component.ts
更改输入属性并查看控制台如何调用 ngOnChanges
推荐阅读
- flutter - 我无法为 Firestore 中的地图字段应用规则
- android - LineChart 中的 MPAndroidChart 目标正方形
- python-3.x - 有没有办法判断一列是否是外键?
- mysql - 在多租户应用程序中为数据库创建多个 docker 容器是否正确?
- r - 如何保存从 R studio 导入的数据以便我可以编织?
- excel - VBA Visual Basic 编辑器(VBE)对象。保存布尔错误?
- sql - 在sql中从两个表中添加两列
- regex - 如何在vscode中用查找和替换的kebab case字符串替换所有camel case字符串
- c++ - boost::asio::post: 在 lambda 与内联定义中调用函数
- r - 如何在数据框中的特定行的每一列中使用分隔符拆分每个值