angular - 如何在 ngif 中使用本地存储值
问题描述
如果..我如何在 ng 中使用本地存储变量
我已经实现但显示错误为无法读取未定义的属性'getItem'..
这是我的代码:
<ng-template [ngIf]="localStorage.getItem(Role)==''">
<td>
<button class="btn btn-primary editable-table-button btn-xs" (click)="updatetq(tq_list.cmslearntopicid
,tq_list.cmslearnchapterid,tq_list.topicname);">Edit</button>
</td>
<td>
<button class="btn btn-danger editable-table-button btn-xs" (click)="deletet(tq_list.cmslearntopicid);">Delete</button>
</td>
</ng-template>
提前致谢
解决方案
你的错误说得很清楚Cannot read property 'getItem' of undefined
,因为localStorage
没有 getItem() 原型。因此,您可以通过以下方式解决此问题
- 您应该将本地存储分配给需要在 HTML 中使用的变量
- 或使用全局方法通过传递来读取本地存储值
keys
。(由于全局读取数据,这是最好的方法,我在下面解释)
组件方法:
readLocalStorageValue(key)
{
let value = localStorage.getItem(key);
if(value == undefined)
{
value =='';
}
return value;
}
你的 HTML 端应该如下所示
*ngIf="readLocalStorageValue('Role')== ''"
注意:我不确定
Role
您的代码中使用的对象。我希望它是localStorage的一个键。但如果它有任何动态值,则Role
在 readLocalStorageValue 方法中不使用单引号传递对象
推荐阅读
- java - 试图将 OnClickListener() 分离到另一个类
- python - 如何在 mac 上使用 pipenv?
- kubernetes - 在 argocd 的不同部署中使用相同的规范
- flutter - 我在运行 Pub get 时遇到了这个问题。任何人都可以帮我吗?
- c# - 在 C# 中比较数组时出错:“System.Array”不包含“sequenceEqual”的定义
- java - 膨胀布局Android Studio时出错
- windows - 从回收站中删除所有文件的批处理脚本
- python - 如何创建 Kubeflow 管道以从 GSBucket 获取图像和注释,训练模型并将其存储到 Python 中的 GS Bucket?
- java - 如何打开文件对话框并在其上创建文件?
- upsert - 如何在 hasura Upsert 突变中将 Update_column 设置为对象级别