【问题标题】:ng-template [NgForOf] return undefined valueng-template [NgForOf] 返回未定义的值
【发布时间】:2017-12-11 08:11:39
【问题描述】:

我有下一个问题:建筑

<p-dataTable [value]="listOfAddresses" [expandableRows]="true" [expandedRows]="listOfAddresses" ">
    <p-column>
        <ng-template let-item="rowData" let-i="rowIndex" pTemplate="body">
                {{i+1}}
        </ng-template>
    </p-column>
    <p-column >
         <ng-template ngFor let-item [ngForOf]="listOfOriginalAddresses" pTemplate="body">
             {{item.Street + " " + item.City}}   
         </ng-template>
    </p-column>
</p-table>

返回 item.Street 和 item.City 的未定义值 奇怪,因为如果我使用

<p-column >
   <ng-template pTemplate="body">
      <div *ngFor="let item of listOfOriginalAddresses">
          {{item.Street + " " + item.City}}   
     </div>
   </ng-template>
</p-column>

我有所有必需的值,但行中的所有列表。问题是什么?提前致谢

【问题讨论】:

    标签: angular undefined primeng primeng-datatable ng-template


    【解决方案1】:

    使用 [Elvis operator][1],通过 ?它会检查对象是否定义

    {{item?.Street + " " + item?.City}} 
    

    【讨论】:

    • 结果相同。行中的对象,但值看起来像“未定义未定义”
    • @Antatrix 试试这个让 listOfOriginalAddresses|async 的项目
    • 用于第二个变体
      得到错误“InvalidPipeArgument: '[object Object],[object Object]”
    • 你能给我们看看 listOfOriginalAddresses 的 console.log 吗?
    • 确保您的服务代码中有此语句 .map(res=>res.json());
    【解决方案2】:

    已解决,但使用 ngFor 未解决。

    我创建管道:

     transform(value: any): any {
            let item = value;
            return (item.Street + " " + item.Country);
        }
    

    另外,地址包的字段中的数据不会根据版本变化,解决了另一个头疼的问题。

    【讨论】:

      猜你喜欢
      相关资源
      最近更新 更多
      热门标签