我正在尝试在* 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>
答案 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:')