当使用* ngFor显示到组件中时,Angular 4指令输出会导致延迟

时间:2017-07-22 15:26:21

标签: angular material-design directive

我正在研究地址预测指令(使用材料设计2)。这使用了Google AutocompleteService,但是当它发出预测时,使用此延迟大约10或25秒的组件会进入视图。我在组件中使用block,这将打印数组元素,但不打印视图。为什么不记录视图?

在我的逻辑中,当用户在3秒后释放键盘时,预测请求将通过输入地址(包含指令)发送到谷歌的服务。然后,当它返回数据时,它会创建一个“预测”数组,并使用console.log()发出。组件将其打印到控制台中,但仅在几秒钟后才显示在视图中。

视图

@Output() onpredict

组件

<md-input-container class="full-width">
  <input type="text" mdInput addressPrediction (onpredict)="showPredictions($event);" (onsearching)="searching = true;" placeholder="Ingrese una dirección">
  <md-hint align="end" *ngIf="searching">Buscando...</md-hint>
</md-input-container>

<div *ngIf="predictions.length > 0 && !searching">
<md-nav-list>
  <div *ngFor="let prediction of predictions">
    <md-list-item>
      <h4 md-line>{{ prediction.name }} </h4>
    </md-list-item>
    <md-divider></md-divider>
  </div>
</md-nav-list>
</div>

指令

export class InputAddressComponent {

  predictions: Prediction[] = [];
  searching: boolean;

  constructor(){}

  showPredictions(predictions: any[]): void {
    this.searching = false;
    this.predictions = predictions;
    console.log(this.predictions);//this show elements but the view not print after some seconds
  }

}

0 个答案:

没有答案