在Angular2中的ngOnInit中传递参数

时间:2016-12-06 10:13:16

标签: javascript angular

是否可以触发其中包含参数的函数,例如trigger(id)中的ngOnInit

我有一个函数,我想在(click)事件和ngOnInit中触发,所以当页面首次加载时,触发基本相同的函数,因为它调用相同的API端点

ngOnInit

中触发的功能
 getOrdersFromOrigin(id: number): void {
   ...
}

所以ngOnInit会是这样的吗?它显示错误"找不到姓名' id'"

 ngOnInit() {
    this.getOrdersFromOrigin(id);
  }

ID来自我的ngFor,它是Id项目,我想点击(click)="getOrdersFromOrigin(id)"

2 个答案:

答案 0 :(得分:1)

如果它在路上像param那样你可以处理它。例如,如果您通过单击编辑按钮编辑表中的某些记录,那么您的应用程序将导航到编辑表单,您可以像这样处理它:

(function(i){
    $('#input' + i).on('keyup', function() {
        if($('#input' + i).val().length > 5) {
            $('#input' + i).val($('#input' + i).val() + '<br>');
        }
    });
}(i))

答案 1 :(得分:0)

param id在getOrdersFromOrigin()中,因此在ngOnInit()的范围内无效,我的建议是你可以声明一个属性 id 并将其标记为 @Input()。然后你可以在外面使用它。代码如下:

export class SameComponent implement OnInit {
   @Input() id:number=0; //initialize
    getOrdersFromOrigin(id: number): void {
    ...
  }
  ngOnInit() {   this.getOrdersFromOrigin(id);}
}