Angularjs 在Angular应用程序中初始化选择框时如何调用方法

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)">

我在一行中使用了一个选择框。行是使用循环生成的。当这个选择框被选中时,我需要调用一个方法 初始化。此方法将动态生成的行数据作为参数传递。 我对如何在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>

为此,我可能会使用自己的组件:

因此,按如下方式创建新组件:

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文档,了解组件交互是如何工作的。