Angular 我什么时候可以检查'@输入();有人给过你吗?
我想检查使用我的组件的另一个组件是否提供了@Input()。但是我不知道什么时候可以检查这个?我应该在“ngOnInit”、“ngAfterViewInit”或其他内容中进行检查吗?您可以同时在Angular 我什么时候可以检查'@输入();有人给过你吗?,angular,typescript,Angular,Typescript,我想检查使用我的组件的另一个组件是否提供了@Input()。但是我不知道什么时候可以检查这个?我应该在“ngOnInit”、“ngAfterViewInit”或其他内容中进行检查吗?您可以同时在ngOnInit或ngAfterViewInit中进行检查,但您无法确定预期数据是否存在(可能输入数据来自HTTP调用或是某些计算的结果) 我建议实现OnChanges接口,并在任何输入数据更改时使用ngOnChanges 从文件来看 在默认更改后立即调用的回调方法 检测器已检查数据绑定属性(如果至少有一
ngOnInit
或ngAfterViewInit
中进行检查,但您无法确定预期数据是否存在(可能输入数据来自HTTP调用或是某些计算的结果)
我建议实现OnChanges
接口,并在任何输入数据更改时使用ngOnChanges
从文件来看
在默认更改后立即调用的回调方法
检测器已检查数据绑定属性(如果至少有一个)
已更改,并且在检查视图和内容子项之前
您可以同时签入
ngOnInit
或ngAfterViewInit
,但您无法确定预期数据是否存在(可能输入数据来自HTTP调用或是某些计算的结果)
我建议实现OnChanges
接口,并在任何输入数据更改时使用ngOnChanges
从文件来看
在默认更改后立即调用的回调方法
检测器已检查数据绑定属性(如果至少有一个)
已更改,并且在检查视图和内容子项之前
您可以通过以下方式实现
ngOnChanges
来检查:
导出类MyComponent实现OnChanges{
@输入()输入;
ngOnChanges(更改:SimpleChanges):无效{
if(changes.hasOwnProperty('input')){
if(changes['input'].isfirstChange()){//AKA按角度初始化
doStuff();
}否则{//由于您的逻辑,会发生真正的变化
doMoreStuff();
}
}
}
}
您可以通过以下方式实现ngOnChanges
来检查:
导出类MyComponent实现OnChanges{
@输入()输入;
ngOnChanges(更改:SimpleChanges):无效{
if(changes.hasOwnProperty('input')){
if(changes['input'].isfirstChange()){//AKA按角度初始化
doStuff();
}否则{//由于您的逻辑,会发生真正的变化
doMoreStuff();
}
}
}
}
您到底想用@Input()做什么?
因为如果您试图通过各种组件(孩子、兄弟姐妹和父母)传递输入,我会更建议使用服务,而且它们比输入(在我个人看来)更容易检查
您到底想用@Input()做什么? 因为如果您试图通过各种组件(孩子、兄弟姐妹和父母)传递输入,我会更建议使用服务,而且它们比输入(在我个人看来)更容易检查
在使用
之前检查!是否无法在角度生命周期内检查?请在使用前检查!没有办法在角度生命周期中检查它吗?我用它来传递数据,抛出使用我的组件的其他组件。它应该尽可能简单,并且可以在整个应用程序中访问,因此我决定使用@Input()而不是服务。我的应用程序中有很多其他服务(用于与服务器通信),因此我想访问数据抛出输入。我使用它传递数据抛出其他使用我的组件的组件。它应该尽可能简单,并且可以在整个应用程序中访问,因此我决定使用@Input()而不是服务。我的应用程序中有很多其他服务(用于与服务器通信),因此我想访问数据输入。