javascript - 在 ngFor 循环之间插入项目

标签 javascript angular angular2-directives

我有以下显示项目的代码

<ul>
<li *ngFor="#item of items">{{item}}</li>
</ul>

现在,items 对象是我通过调用 API 获得的结果。

假设这是以下代码。

this.http.get('/api/items').subscribe(data => {
      this.items= data['results'];
});

我想实现的是,我希望第三个Item是自定义Item,然后正常渲染后面的item。

如何实现。

谢谢

最佳答案

您可以跟踪 *ngFor 的索引通过使用 let i = index , 然后你可以使用 *ngIf当索引位于位置 3 时执行操作。见下文,我使用了 <pre></pre>因为我不知道是什么item是。

<ul>
    <li *ngFor="let item of items; let i = index">
        <pre *ngIf="i !== 2; then thenBlock else elseBlock"></pre>
    </li>
</ul>

<ng-template #thenBlock>{{item}}</ng-template>
<ng-template #elseBlock>//Display something for item 3</ng-template>

不过你的 HttpGet 是错误的,我假设你使用的是新的 HttpClient ,应该是:

this.http.get<any>('/api/items').subscribe((data: any) => {
      this.items = data;
});

如果是旧的Http :

this.http.get('/api/items')
    .map((res: Response) => res.json())
    .subscribe((data: any) => {
        this.items = data;
     });

关于javascript - 在 ngFor 循环之间插入项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46048472/

相关文章:

javascript - defer 到底做什么?

angular - 为什么没有调用 RxJS Observable 构造函数中的代码?

javascript - Angular 2 模块.id

javascript - 在使用模板的指令中更新 ng-model

javascript - 在下一个请求之前等待 $http promise

Angular 2 相当于 href ="#someElementId"

angular - 动态安装 Angular 2 指令

html - Angular2 - 将 CSS 类添加到选定元素

javascript - 在自动完成表单上输入 onkeydown 功能

未找到 Angular 2/Angular 2 CLI/lodash 函数