Как мне вызвать кнопку один раз, не входя в бесконечный цикл (угловой)? - PullRequest
0 голосов
/ 17 сентября 2018

Возможно, заголовок не очень понятен, но вот что у меня есть.

У меня есть сценарий, когда у меня есть кнопка в HTML, я вызываю службу, когда нажимается кнопка, и я хочу, чтобы HTML Bзнать, когда нажимается кнопка из HTML A.

A.html

<button (click)="passData(a,b,c)">

B.html

<div *ngIf="fromA()" > 
 {{ showResult() }}
</div>

A.component.ts

passData(a: string, b:string, c:string) {
  this.Xservice.getData.subscribe(data => res = data);
}

B.compoent.ts

fromA() {
  this.xService.subscribe( data => res = data ); // This is observable
  if (res !== undefined ) {
    console.log("true returned");
    return true;
  }
}

Итак, из вышесказанного я проверил консоль, и она залита журналами «вернулось», и мне было интересно, как мне просто вызвать ее один раз, когдакнопка из А.html нажата?

1 Ответ

0 голосов
/ 17 сентября 2018

Вам не нужно использовать *ngIf.Вы можете просто иметь

fromA():string {
  if // Whatever logic you do
  return "block";
  else return "none";
}

Теперь я предполагаю, что вы хотите сказать, что вы хотите, чтобы HTML B отображался только при нажатии на fromA ().Таким образом, вы можете сделать это:

<div [display] = "fromA()">
 {{ showResults()  }}
</div>

По сути, вы просто устанавливаете свойство display на любой результат, который имеет fromA().Если кнопка не нажата (возвращается none), то HTML-код не отображается (display=none).Если щелкнуть по нему (вернуть inline), отобразится HTML-код (display=inline).

Конечно, вы можете использовать любые другие свойства отображения, кроме встроенного, для отображения HTML.

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