Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/31.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
Javascript 角度2-通过输入将对象传递给组件_Javascript_Angular_Typescript - Fatal编程技术网

Javascript 角度2-通过输入将对象传递给组件

Javascript 角度2-通过输入将对象传递给组件,javascript,angular,typescript,Javascript,Angular,Typescript,在我的父页面上,我有一个链接: <a (click)="showPermissionsRates(5757);">Link</a> 在此处的父页面上有一个子组件: <app-event-pools-permissions-rates [eventPoolId]="currentEventPoolId "></app-event-pools-permissions-rates> 但是我如何在子组件中得到'5757'的值呢?例如使用警报?我认为您在

在我的父页面上,我有一个链接:

<a (click)="showPermissionsRates(5757);">Link</a>
在此处的父页面上有一个子组件:

<app-event-pools-permissions-rates [eventPoolId]="currentEventPoolId "></app-event-pools-permissions-rates>

但是我如何在子组件中得到'5757'的值呢?例如使用警报?

我认为您在单击事件中将值设置为at input变量,然后您必须使用ngonchanges在子组件构造函数中侦听它

 ngOnChanges(changes: SimpleChanges) {

            if(changes['eventpoolid'] && changes['eventpoolid'].currentValue) {
// you get updated value here
    }
    }

我认为您正在单击事件中将值设置为at输入变量,然后必须使用ngonchanges在子组件构造函数中侦听它

 ngOnChanges(changes: SimpleChanges) {

            if(changes['eventpoolid'] && changes['eventpoolid'].currentValue) {
// you get updated value here
    }
    }

您应该能够在子属性上使用@Input()

我把这些放在一起,展示了一个非常基本的示例,但是如果没有更多关于您的问题的内容,就很难知道您需要什么:

要点是使用
@Input()
标记子组件中的输入,并将这些输入映射到父组件的模板中

从'@angular/core'导入{Component}
从“@angular/platform browser”导入{BrowserModule}
从'child.component.ts'导入{ChildComponent};
@组成部分({
选择器:“我的应用程序”,
模板:`
点击我!
`,
})
导出类应用程序{
公共parentProperty:string=“parentProp”;
公共changeProperty(newProperty:string):无效{
this.parentProperty=newProperty;
}

}
您应该能够在子属性上使用@Input()

我把这些放在一起,展示了一个非常基本的示例,但是如果没有更多关于您的问题的内容,就很难知道您需要什么:

要点是使用
@Input()
标记子组件中的输入,并将这些输入映射到父组件的模板中

从'@angular/core'导入{Component}
从“@angular/platform browser”导入{BrowserModule}
从'child.component.ts'导入{ChildComponent};
@组成部分({
选择器:“我的应用程序”,
模板:`
点击我!
`,
})
导出类应用程序{
公共parentProperty:string=“parentProp”;
公共changeProperty(newProperty:string):无效{
this.parentProperty=newProperty;
}


}
很难理解你在问什么。
showPermissionRates()的作用是什么?也许您可以创建一个您尝试过的工作示例?@Askanison4我刚刚更新了它:)简而言之,我希望传递“5757”值以在子组件TS文件中使用。您能否显示
应用程序事件池权限率的
组件.TS
?很难理解您的要求。
showPermissionRates()的作用是什么?也许您可以创建一个您尝试过的工作示例?@Askanison4我刚刚更新了:)简言之,我希望传递“5757”值以在子组件TS文件中使用。您能否显示
应用程序事件池权限率的
组件.TS
?是的,听起来不错。我不确定如何从输入中提取该值:['eventPoolId']。有什么想法吗?我已经更新了我的答案,这不是你想要的吗?为什么你需要使用
ngOnChanges
?变化检测是自动完成的,不是吗?嗯,我的问题更简单。我只需要“eventPoolId”的值,如果您需要在值发生更改时执行某些操作,您可以使用ngonchanges,否则@Input就可以了。是的,听起来不错。我不确定如何从输入中提取该值:['eventPoolId']。有什么想法吗?我已经更新了我的答案,这不是你想要的吗?为什么你需要使用
ngOnChanges
?变化检测是自动完成的,不是吗?嗯,我的问题更简单。我只需要“eventPoolId”的值。如果您需要在值发生更改时执行某些操作,您可以使用ngonchanges,否则@Input就可以了。就在这里,我想提醒子TS文件中的“ABC 123”值,而不是模板中的值:)发生更改时是否需要执行某些操作,或者单击按钮查看它们?按钮单击:)@AndrewJuniorHoward只需将
(单击)
处理程序添加到子组件<代码>输入:[]
@Input()
的效果几乎相同-我只是觉得注释和修饰代码更容易。。。下一个开发人员更容易理解您所做的事情:)祝您好运!在这里,我想提醒子TS文件中不在模板中的“ABC 123”值:)当发生更改时,您是否需要执行一些操作,或者单击按钮查看它们?按钮单击:)@AndrewJuniorHoward只需向子组件添加
(单击)
处理程序<代码>输入:[]
@Input()
的效果几乎相同-我只是觉得注释和修饰代码更容易。。。下一个开发人员更容易理解您所做的事情:)祝您好运!
 ngOnChanges(changes: SimpleChanges) {

            if(changes['eventpoolid'] && changes['eventpoolid'].currentValue) {
// you get updated value here
    }
    }