如何在角度中将普通js函数注册到@Output

时间:2018-05-03 11:37:44

标签: javascript angular event-handling

我在 index.html script的{​​{1}}标记中有一个函数,index.html中有一个角度应用程序组件。我想在应用程序启动时调用该函数。我试过hideAppLoader(),但这不起作用。这是代码

的index.html

@Output

并在 ts 文件中

<head>
  <script>
     function hideAppLoader() { debugger;}
  </script>
</head>
<body>
  <my-app (onAppLoad)="hideAppLoader($event)"></my-app>
</body>

但即使控制台上没有错误,也不会调用该函数。我甚至尝试过@Output() onAppLoad = new EventEmitter(); ngOnInit() { this.onAppLoad.emit(); } (onAppLoad)="this.hideAppLoader($event)"

什么是解决方案,甚至可以在加载时从角度组件调用普通js函数?

1 个答案:

答案 0 :(得分:2)

由于脚本函数是全局的,因此您无需使用和EventEmitter。只需将ngOnInit更改为:

ngOnInit() {
  window.hideAppLoader();
}

根据hideAppLoader的名称判断,你可以在my-app标签内定义加载器,Angular会在AppComponent加载后删除它。

<my-app>
  <img src="assets/loader" />
</my-app>