Я следую инструкциям Angular CLI 6 для создания библиотеки здесь .Я смог сделать свою библиотеку и успешно ее построить.Библиотека состоит из 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
и использовать Component
в файле HTML с его селектором вместе с передачей входных данных: <my-lib [id]="'my-id'">
.id
передается правильно, но логика в ngOnInit
не запускается.Консоль НЕ печатает "ngOnInit"
.Но он печатает "constructor"
, и элементы пользовательского интерфейса компонента отображаются правильно.
Я что-то упустил, чтобы запустить ngOnInit
логику?
РЕДАКТИРОВАТЬ: я должен отметить, что библиотека работает:
и проект, в котором я пытаюсь использовать библиотеку:
"@angular/core": "^5.0.1"
"@angular/cli": "^1.6.5"
Не уверен, повлияет ли это на что-то или нет.
EDIT2: исправить пример кода.