Ошибка машинописного текста "это выражение не вызывается. Введите логическое значение", из ошибки Angularjs - PullRequest
0 голосов
/ 10 июля 2020

Использование 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' не имеет сигнатур вызовов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...