Я сталкиваюсь с проблемой правильной реализации наблюдаемой в библиотеке (угловой) для API.
Библиотека отображает div с текстом внутри. Внутри компонента библиотеки есть логическое значение, которое я использую для отображения элемента div html.
Я хочу построить наблюдаемое на основе этого логического значения, которое будет доступно для пользователя, чтобы дать им знать, отображается ли div или нет, и делать что-то.
Внутри проекта я создал сервис, который потребляет наблюдаемый на боле.
Внутри компонента div я импортирую эту службу, и когда есть логическое значение true или false, я устанавливаю значение для функций служб.
Я использую rxjs (тихий, простой в использовании) ..
private Boolean: BehaviorSubject<boolean>;
export class getDivStatus {
public getTheBoolean(): Observable<boolean> {
return this.theBoolean.asObservable();
}
public setTheBoolean(newValue: boolean): void {
this.theBoolean.next(newValue);
}
}
My component
...
import {getDivStatus } from /getDivStatus.service.ts
...
export class divCom implement oninit {
constructor(private divservice: getDivStatus)
ngOnInit() {
booleanDiv = true;
this.divservice.setTheBoolean(true);
if(anotehrcondition) {booleanDiv = false; this.divservice.setTheBoolean(false);}
}
// Сборка библиотеки и ее реализация в угловом проекте:
app.compoennt.ts
import {librarytotest} from librarytotest;
@compoennt({
...})
export class AppCompoet implements oninit{
ngoninit() {
this.librarytotest.getboolean().subscribe({x => console.log(x)});
}
}
В другом проекте, после создания библиотеки, я хочу подписаться на эти события, но я не знаю, как мне этого добиться.
Какой лучший способ или правильный способ сделать это?