【问题标题】:Pass component method as a parameter to a class将组件方法作为参数传递给类
【发布时间】:2018-12-11 20:31:59
【问题描述】:

我有一个组件 First,它创建了一个 Worker 类的新实例

在创建类时,我想将 Read 方法作为回调方法传递给此类。这个类会做一些工作,完成后会调用它。

我知道在普通 JS 中是可能的,我可以在 Angular 6 中做到吗?

@Component({
   selector: 'app-campaign-settings',
   templateUrl: './campaign-settings.component.html',
   styleUrls: ['./campaign-settings.component.css']
})
export class First implements OnInit {

worker:Worker=null;

  Work() {

    worker=new Worker(this.Read);
    worker.Run();
  }
  Read() {
    //do stuff

  }
}

  export class Worker implements OnInit {

  callback:any;

   constructor(i_callback:any) {

  }

  Run()
  {
    callback();
  }

}

【问题讨论】:

  • 你试过了吗?发生了什么? Angular 建立在 TypeScript 之上,TypeScript 只是 JS 的类型化超集,所以你可以用 JS 语法做的任何事情都可以在 Angular 6 中工作。

标签: angular typescript


【解决方案1】:

Angular 强烈反对传递回调或对其他类的引用。

相反,父母可以监听孩子发出的事件,然后执行您尝试放入回调中的代码。

这样,孩子甚至不需要知道父母存在或父母有什么方法。

You can find an example of an Event Emitter and Subscriber here.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-16
    • 2015-12-26
    • 2020-03-06
    • 1970-01-01
    • 2013-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多