Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 我什么时候可以检查'@输入();有人给过你吗?_Angular_Typescript - Fatal编程技术网

Angular 我什么时候可以检查'@输入();有人给过你吗?

Angular 我什么时候可以检查'@输入();有人给过你吗?,angular,typescript,Angular,Typescript,我想检查使用我的组件的另一个组件是否提供了@Input()。但是我不知道什么时候可以检查这个?我应该在“ngOnInit”、“ngAfterViewInit”或其他内容中进行检查吗?您可以同时在ngOnInit或ngAfterViewInit中进行检查,但您无法确定预期数据是否存在(可能输入数据来自HTTP调用或是某些计算的结果) 我建议实现OnChanges接口,并在任何输入数据更改时使用ngOnChanges 从文件来看 在默认更改后立即调用的回调方法 检测器已检查数据绑定属性(如果至少有一

我想检查使用我的组件的另一个组件是否提供了@Input()。但是我不知道什么时候可以检查这个?我应该在“ngOnInit”、“ngAfterViewInit”或其他内容中进行检查吗?

您可以同时在
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()而不是服务。我的应用程序中有很多其他服务(用于与服务器通信),因此我想访问数据输入。