如何在 Angular 8 中实现 ngInit?

Posted

技术标签:

【中文标题】如何在 Angular 8 中实现 ngInit?【英文标题】:How do I implement ngInit in Angular 8? 【发布时间】:2020-02-19 12:42:58 【问题描述】:

我正在尝试在 Angular 8 代码中实现 [ngInit],如此链接 ConvertingAngular1To2ngInit 中所述 它几乎对我有用,但问题是它执行了不止一次,在某些情况下它进入无限循环或几乎无限,它完全崩溃了我的页面。 所以我尝试将函数作为functionName(5) 放在html 中,即使我将它放在*ngIf 指令中,它也会执行多个。 我什至开始了新项目,只是把函数放在 html 中,至少它执行了四次 我为这个问题搜索了很多并陷入了角度生命周期钩子但什么也没理解。

【问题讨论】:

当你直接在模板中调用一个方法时,它会在每次运行 Angular Change Detection 时运行。这就是为什么你会看到它被多次调用。问题是,你需要实现这样的功能吗?你想达到什么目的,可能还有其他方法 我想实现一个像 [ngInit] 这样的指令,它也随之发生。多次执行 你可以使用*ngIf="variable && yourFunction()"之类的。所以只有当变量为真时才执行函数 【参考方案1】:

你可以试试这个:

@Component(selector: 'my-cmp', template: `...`)

class MyComponent implements OnInit 

ngOnInit() 
  // ...

【讨论】:

以上是关于如何在 Angular 8 中实现 ngInit?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Angular 6 中实现 Keycloak?

如何在 nativescript angular 中实现图像缓存

如何在 Angular 4 中实现 google auth 登录

如何在没有 Angular 的 Cordova 中实现 Auth0 SSO

如何在angular js中实现多路由

如何使用 angular2 在 Office 加载项中实现对话框 API?