尝试从本地存储中获取值(对象数组)并使用*ngIf
显示但角度抛出Cannot find a differ supporting object
错误。
这是Plnkr投掷错误
http://plnkr.co/edit/qgrOmRlUcAZq1spGALEa?p=preview
<template ngFor #permissionvar [ngForOf]="LocalStorageData">
<li class="dropdown-submenu" *ngIf="permissionvar.root_permission_name == 'School Setting'">
<a (click)="Schoolsettings()">
<i class="fa fa-gears"></i>
<span>School Settings</span>
</a>
<ul class="dropdown-menu">
<li>ABC</li>
</ul>
</li>
</template>
似乎无法找到permissionvar.root_permission_name
,我不知道为什么?
答案 0 :(得分:4)
实际上,当您单击“从LocalStorage获取”按钮时,您将从存储中获取字符串而不是数组。所以你需要在尝试在ngFor中使用它之前解析它:
getData(){
this.LocalStorageData = JSON.parse(localStorage.getItem("DEMO data"));
}
请参阅此plunkr:http://plnkr.co/edit/aumB4mMNVlV9TK5KDjoF?p=preview。
答案 1 :(得分:4)
getData(){
this.LocalStorageData =JSON.parse(localStorage.getItem("DEMO data")); //stringify data needs to be parsed to json.
}
除此之外,要将json对象显示为HTML,您可以使用{{jsonobject|json}}
jsonPipe,如演示所示。