Угловое поле, обновленное с succ в подписке, не распространяется на отображаемое представление - PullRequest
0 голосов
/ 21 февраля 2019

У меня есть такая разметка.

<a href="{{testValue}}">
  Clicky here
</a>

В ngOnInit () я выполняю следующий код.

this.someService.someObservable()
  .subscribe(suc => {
    console.log(suc.resId);
    this.testValue = suc.resId;
    console.log(this.testValue);
  });

Вывод на консольоба раза говорит мне, например se134 .Поэтому я пришел к выводу, что я правильно получил значение из службы и обновляю поле, как и предполагалось.

Ожидаемое поведение на странице состояло в том, что исходное значение будет изменено наодин получен в обратном вызове от подписки.Этого не происходит.

Я попытался погуглить систему привязки Angular, понимая, что это очень простая проблема (я имею в виду, что значение, загруженное в асинхронном режиме, не имеет большое значениеВот).Я не нашел ничего удивительного в том, что я отклоняюсь от того, что у меня уже есть.

Я даже пытался использовать разные комбинации скобок, например, a [href] = "testValue" и что нет.Конечно, как и ожидалось, это не дало никаких улучшений.

Чего мне не хватает?

1 Ответ

0 голосов
/ 21 февраля 2019

Попробуйте этот код

<a [href]="testValue">Clicky here</a>

Однако в вашем коде есть проблема.Вы не отмените подписку на свой сервис.Вы можете использовать async трубу, которая автоматически откажется от вас

контроллер:

testValue: Observable<string>;

ngOnInit() {
  this.testValue = this.someService.someObservable().map(suc => suc.resId);
}

шаблон:

<a [href]="testValue | async">Clicky here</a>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...