【问题标题】:Angular 2 - Load the dynamic components one by oneAngular 2 - 一个一个地加载动态组件
【发布时间】:2017-07-14 21:59:40
【问题描述】:
<div *ngFor="let header of headers">    
    <widget [header]="header" (loaded)="onLoaded($event)"></widget>
</div>

如何根据“onLoaded”发射一一绑定标头。基本上,我希望小部件在每次成功加载数据后一一加载(输出方法 onLoaded 发出布尔值)。

【问题讨论】:

    标签: angular asynchronous lazy-loading ngfor


    【解决方案1】:

    这是一个很奇怪的要求,所以你可以这样开始

    1) 创建空的新数组 forLoop: any[] = [];

    2) 在显示 headers 值之前(可能在 ngonint() 中)将 headers 数组中的第一个元素添加到 forLoop 数组

       `forLoop.push(headers.Shift())`  // it will remove first element from the headers array and add into forLoop
    

    3) 现在显示 forLoop 数组

    <div *ngFor="let header of forLoop;trackBy: trackByFn">    
        <widget [header]="header" (loaded)="onLoaded($event)"></widget>
    </div>
    
     trackByFn(index, item) {
        return index; // or item.id
      }
    

    4) onLoaded 方法从头数组中删除第二个元素添加到forloop数组中

    onLoaded (){
    
      if(headers.length >0){
       forLoop.push(headers.Shift())
      }
    }
    

    5) 继续这个过程直到 headers 数组为空

    【讨论】:

      猜你喜欢
      • 2016-08-23
      • 1970-01-01
      • 2017-10-07
      • 1970-01-01
      • 1970-01-01
      • 2017-06-24
      • 2018-12-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多