Использование angular 1.5 при попытке подписаться на обновления служебных переменных.
Служба:
export class Service {
private _booVal: boolean
private _booValChanged: Subject<boolean>
constructor() {
this._booValChanged = new Subject<boolean>();
}
// the this._booVal returned is boolean that is not callable
public get toggleBoo(): boolean{
return this._booVal;
}
public set toggleBoo(value: boolean) {
this._booVal = value;
}
}
Компонент
export class Component implements ComponentController {
public static $inject: string[] = [$scope','Service'];
public boo: boolean;
constructor(private readonly $scope,
private readonly myService: Service) { }
$onInit() {
// error: this expression is not callable. Type 'boolean' has no call signatures
this.myService.toggleBoo().subscribe((v) => {
this.boo = v;
});
}
}
Необходимо устранить ошибку на компонент, но сначала мне нужно правильно выставить метод get службы, чтобы вернуть допустимое выражение.
В моей службе, как я могу изменить get toggleBoo () {return this._booVal; }, чтобы вернуть метод, который я могу вызвать из подписки?
на Component this.myService.myBoolean (). subscribe () ошибка: это выражение не вызывается. Тип 'boolean' не имеет сигнатур вызовов