无法在* ngFor内插

时间:2018-12-07 05:06:29

标签: angular

我正在尝试在* ngFor内插值。每个标签都由* ngIf组成.Intepolation后获得的Particular_id的值为10,20。因此,如果= Particular_id = 10,则应打印基本模块。 它没有打印任何东西我做错了什么? 我的json格式

{
    "Item_description" : [{
        "quantity" :[10,20,30,40],
        "particular" : [20,30,40],
        "description" : ["10","20","30"]
}]
}

数据的格式为:[10,20,30] in json

如何处理数据并使其成为

["id":10,"id":20,"id":30]

代码:

.ts:

purchase_id=[];
for(var i=0;i< data.Item_description.length;i++) {
this.particular_id[i] = data.Item_description[i].particular_id;
 //this.particular_id["id"+i] is this possible?
}

.html

 <td *ngFor="let Particular_id  of particular_id">
            <ul>
              <li>{{Particular_id}}</li>
           <li *ngIf="Particular_id === 10">  Base Module</li>
           <li *ngIf="Particular_id === 20"> Advance sta </li>
           <li *ngIf="Particular_id === 30">  Custom Tabl</li> 
           </ul>
    </td>

4 个答案:

答案 0 :(得分:1)

您可以尝试使用这种方法将数据从<div *ngFor = "let Particular_id of fetchData"> <ul> <li>{{Particular_id.id}} <li *ngIf="Particular_id.id == 10"> Base Module</li> <li *ngIf="Particular_id.id == 20"> Advance sta </li> <li *ngIf="Particular_id.id == 30"> Custom Tabl</li> </ul> </div> 转换为对象数组[10, 20, 30]

[{"id":10},{"id":20}, {"id":30}]
  

注意::您不会得到 [“ id”:10,“ id”:20,“ id”:30] 的结果,因为它会触发错误:

     

“未捕获到的SyntaxError:意外令牌:”

     

您只能将字符串,数字,布尔值和对象存储在数组中。

     

在内部没有 {} ['id':10] 没有有效的类型。

因此,您可以在模板上通过以下方式对其进行迭代:

1。)NgFor和NgIf

const data = [10, 20, 30];

this.list = data.map(id => ({ id }));  // [{"id":10},{"id":20}, {"id":30}];

console.log(transform[0].id);     // 10 
console.log(transform[1].id);     // 20
console.log(transform[2].id);     // 30

2。)NgFor和NgSwitch

<td *ngFor="let item of list">
  <ul>
     <li>{{ item.id }}</li>
     <li *ngIf="item.id === 10">  Base Module</li>
     <li *ngIf="item.id === 20"> Advance sta </li>
     <li *ngIf="item.id === 30">  Custom Tabl</li> 
  </ul>
</td>

已经创建了一个StackBlitz Demo供您参考

答案 1 :(得分:0)

`

{{particular_id}}

        

   <li *ngIf="Particular_id === 10">  Base Module</li>
   <li *ngIf="Particular_id === 20"> Advance sta </li>
   <li *ngIf="Particular_id === 30">  Custom Tabl</li> 
   </ul>

`'particular_id'中是否有数据。尝试在* ngFor外部打印。您能否也添加.ts文件?解决该问题会更容易。

答案 2 :(得分:0)

请尝试以下操作:

<PreferenceScreen
    android:title="@string/Notification">
    <intent android:action="android.settings.APP_NOTIFICATION_SETTINGS"
            android:data="package:com.my_app_package_name" />
</PreferenceScreen>

答案 3 :(得分:0)

尝试

'id:'+array1.toString().split (',').join( ',id:')