![](/img/trans.png)
[英]constructor or ngoninit is not calling when used router.navigate in ionic 4 with angular
[英]Angular Library is not running ngOnInit when used
我正在按照Angular CLI 6的说明在此处创建库。 我能够制作我的库并成功构建它。 该库由我用于UI的Component
组成,并具有HTML selector
。
@Component({
selector: 'my-lib',
templateUrl: './my-lib.component.html',
styleUrls: ['./my-lib.component.css'],
providers: [MyService],
})
export class MyComponent implements OnInit {
@Input() id: string;
constructor(
private myService: MyService) {
console.log("constructor");
}
ngOnInit {
console.log("ngOnInit");
this.myService.DoStuff();
}
}
现在,我有一个单独的项目正在尝试使用该库。我尚未发布它,因此我将dist/<my-lib>
的内容复制到另一个项目的node_modules
来使用它。 我以前使用过npm link
,但是遇到了此处描述的问题,该解决方案对我来说很有效。
我可以成功导入库和Module
并在HTML文件中使用带有其选择器的Component
以及传递的输入: <my-lib [id]="'my-id'">
。 该id
已正确传递,但ngOnInit
中的逻辑未运行。 控制台不会打印"ngOnInit"
。 但是,它确实打印出"constructor"
,并且Component UI元素正确显示。
我是否缺少一些让ngOnInit
逻辑运行的东西?
编辑:我应该提到该库正在运行:
"@angular/core": "^6.0.3"
"@angular/cli": "~6.0.7"
我试图在其中使用该库的项目是:
"@angular/core": "^5.0.1"
"@angular/cli": "^1.6.5"
不知道这是否会影响任何事情。
EDIT2:修复示例代码。
我看到的唯一问题是您的服务实例也具有相同的名称,请将其更改为
constructor(
private apiService: myService) {
console.log("constructor");
}
ngOnInit {
console.log("ngOnInit");
this.apiService.DoStuff();
}
也希望您已经导入
import { Component, OnInit } from '@angular/core';
还删除组件中的提供程序并将其移至模块级别。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.