【问题标题】:Angular2 how to process service which is not arrayAngular2如何处理不是数组的服务
【发布时间】:2016-04-30 18:22:51
【问题描述】:

我已经准备了与此类似的服务:

            [{
                "Id": 1,
                "productName": "Cart",
            },
            {
                "Id": 2,
                "productName": "Hammer",
            }]

我可以在视图中使用 *ngFor 并检查所有项目,它工作正常,但是

  1. 是否只有当我有一个项目(不是数组)时才等效于 *ngFor?:

    {
        "Id": 1,
        "productName": "Cart",
    }
    
  2. 如果是数组,我尝试这样做(它不起作用):

    &lt;div *ngFor="let item of items; let i = index;#last = last"&gt; <div *ngIF="#last"> </div> </div>

感谢您的建议。

【问题讨论】:

    标签: angular


    【解决方案1】:

    1) 你可以这样一一显示属性:

    {{product.Id}} {{product.productName}}
    

    如果您的数据是异步加载的,请使用 Elvis 运算符:

    {{product?.Id}} {{product?.productName}}
    

    您可以使用自定义管道迭代对象的属性名称:

    <div *ngFor="let keyValue of product | keyValue">
     {{keyValue.key}} {{keyValue.value}}
    </div>
    

    看到这个问题:

    2) 您可以尝试以下方法:

    <div *ngFor="let item of items; let i = index; let last = last">
    
       <div *ngIF="last">
      `
      </div>`
      `
    </div>` 
    

    【讨论】:

    • 谢谢,但我尝试了 1) 但它对我不起作用 plnkr.co/edit/6hhz5Q?p=preview 。我可能错过了一些东西。
    • 不客气!也许猫王接线员就是你要找的……我更新了我的答案。
    【解决方案2】:

    对于#1) 你可以这样做

    <div>{{item.value}}</div>
    etc...
    

    对于#2)

    <div *ngFor="let item of items; let i = index;>  
       <div *ngIF="(i == items.length -1)">  
      </div>  
    </div>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-11
      • 1970-01-01
      • 1970-01-01
      • 2017-10-14
      • 1970-01-01
      • 2011-05-04
      • 2019-04-19
      • 2017-04-14
      相关资源
      最近更新 更多