加载与Id相关的数据,这些数据存储在本地存储Angular 10中
Posted
技术标签:
【中文标题】加载与Id相关的数据,这些数据存储在本地存储Angular 10中【英文标题】:Load data relevant to Id which store in local storage Angular 10 【发布时间】:2021-10-30 11:32:55 【问题描述】:我将我的公司 ID 保存在本地存储中。当客户访问分支机构页面时,我需要显示与公司相关的分支机构存储在本地存储中。目前它正在显示所有分支。
我的选择公司下拉菜单在另一个组件中,而我的表格在另一个组件中。
ngAfterViewInit()
this.getBranches();
getBranches()
let id: number;
id = +localStorage.getItem('cid');
console.log(localStorage.getItem('cid'));
this.branchService.getBranches().subscribe(x =>
Object.assign(this.branchData, x);
this.branchData = this.branchData.filter(b => b.CompanyId = id);
);
【问题讨论】:
【参考方案1】:问题不在于localStorage
,而在于订阅。
this.branchData = this.branchData.filter(b => b.CompanyId = id);
那条线导致了问题。
我建议:
branchData: any; // Or an defined Entity
ngAfterViewInit()
this.getBranches();
getBranches()
this.branchService.getBranches
.pipe(filter(data => data.CompanyId === +localStorage.getItem('cid'))
.subscibe(data => this.branchData = data);
如果你在 DOM 中使用 branchData,我建议使用异步管道并像这样设置
branchData: Observable<any>;
...
getBranches()
this.branchData = this.branchService.getBranches
.pipe(filter(data => data.CompanyId === +localStorage.getItem('cid'));
// inside DOM
<p>(branchData | async)?.CompanyId</p>
尚未测试,但应该可以。
【讨论】:
感谢您的宝贵时间。但它不起作用。我试过了 会发生什么?你确定data.CompanyId
是一个数字吗?使用==
尝试相同的过滤器。否则,记录您获得的所有分支机构并手动检查您正在寻找的公司是否存在。
我试过了,但没有显示数据。我有属于公司的分支机构
如果branchService.getBranches()
只返回一个空的 Observable,你的请求很可能是错误的以上是关于加载与Id相关的数据,这些数据存储在本地存储Angular 10中的主要内容,如果未能解决你的问题,请参考以下文章