Angularjs 在Angular应用程序中初始化选择框时如何调用方法
我在一行中使用了一个选择框。行是使用循环生成的。当这个选择框被选中时,我需要调用一个方法 初始化。此方法将动态生成的行数据作为参数传递。 我对如何在Angular4/5中实现这一点感到困惑 在AngularJS中,可以这样做:Angularjs 在Angular应用程序中初始化选择框时如何调用方法,angularjs,angular,Angularjs,Angular,我在一行中使用了一个选择框。行是使用循环生成的。当这个选择框被选中时,我需要调用一个方法 初始化。此方法将动态生成的行数据作为参数传递。 我对如何在Angular4/5中实现这一点感到困惑 在AngularJS中,可以这样做: <tr ng-repeat="row in myData track by $index"> <select class="form-control" ng-model="row.val" ng-init="methodToCall(row)">
<tr ng-repeat="row in myData track by $index">
<select class="form-control" ng-model="row.val" ng-init="methodToCall(row)">
</tr>
为此,我可能会使用自己的组件: 因此,按如下方式创建新组件:
import {Component, onInit, Input} from "@angular/core";
@Component({
selector: "custom-select"
})
export class customeSelect implements onInit{
@Input() row:any;
ngOnInit(){
//You can call what ever you want after your component initialized.
console.log(this.row);
}
}
并在您的ngfor
中使用它,如下所示:
<tr *ngFor="row in myData">
<custom-select [row]="row"></custom-select>
</tr>
有趣的是,我建议您使用自己的组件,这样您就可以实现ngOnInit
。使用methodToCall()更新post
method@Sanoj在methodToCall()方法中,我需要处理传递的行数据。我认为它的逻辑是不相关的。依我看,如果你需要在组件初始化时为myData
的每一行做些什么,你可以在ngAfterViewInit
中做,这是在所有组件加载后发生的。我能想到的唯一问题是,如果您想使用select
组件本身做些什么,您如何将row
传输到customSelect?@SebastienServouze您能进一步解释一下您的意思吗?@Nour我将如何将row数据传递给ngOnInit或此组件中的其他方法?OP需要使用行
变量在每个
初始化处。因此,您需要一种方法来动态地将其传递给您的自定义组件。请查看angular文档,了解组件交互是如何工作的。