我正在按照 Angular CLI 6 说明在此处创建库。我能够制作我的库,并成功构建它。该库由Component
我用于 UI 的一个和一个 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
在Component
HTML 文件中使用它的选择器,以及传递输入:<my-lib [id]="'my-id'">
. id
正确传递了,但其中的逻辑没有ngOnInit
运行。控制台不打印"ngOnInit"
。但它确实 print "constructor"
,并且组件 UI 元素正确显示。
我是否错过了一些让ngOnInit
逻辑运行的东西?
编辑:我应该提到图书馆正在运行:
"@angular/core": "^6.0.3"
"@angular/cli": "~6.0.7"
我正在尝试使用该库的项目是:
"@angular/core": "^5.0.1"
"@angular/cli": "^1.6.5"
不确定这是否会影响任何事情。
EDIT2:修复示例代码。