Ответ 1
В зависимости от того, как эти логические изменения вы можете выставить в качестве Observable<boolean>
в своей службе, а затем подписаться на этот поток в своем компоненте. Ваш сервис будет выглядеть примерно так:
@Injectable()
export class MyBooleanService {
myBool$: Observable<boolean>;
private boolSubject: Subject<boolean>;
constructor() {
this.boolSubject = new Subject<boolean>();
this.myBool$ = this.boolSubject.asObservable();
}
...some code that emits new values using this.boolSubject...
}
Тогда в вашем компоненте у вас будет что-то вроде этого:
@Component({...})
export class MyComponent {
currentBool: boolean;
constructor(service: MyBooleanService) {
service.myBool$.subscribe((newBool: boolean) => { this.currentBool = newBool; });
}
}
Теперь, в зависимости от того, что вам нужно сделать с этим значением bool, вам может потребоваться сделать некоторые другие вещи, чтобы обновить ваш компонент, но это суть использования наблюдаемого.
Другой вариант заключается в том, что вы используете асинхронный канал внутри вашего шаблона вместо явной подписки на поток в конструкторе. Опять же, это зависит от того, что именно вам нужно делать с значениями bool.