我已经从API加载了JSON数据:
{
"userGroups":[
{"title":"group 1"},
{"title":"group 2"},
{"title":"group 3"},
{"title":"group 4"}
]
}
我将原始数据存储在NativeStorage中。
// userService
this.userGroups = response[userGroups];
this.current_userGroup = response[userGroups][0];
this.storage.set('userGroups', this.userGroups);
this.storage.set('viewing_userGroup', this.current_userGroup);
这样,我就拥有了整个列表以及要在应用程序中显示的当前项目...
我的问题是如何从我的页面访问此信息
<div class="page_title">{{ this.userGroupService.current_userGroup.title }}</div>
因此,当我导航到另一个userGroup时,我要做的就是将current_userGroup
更新为新对象...
这是正确的方法吗?
答案 0 :(得分:0)
使用服务和Subject
中的rxjs
:
import { Subject } from 'rxjs';
const title = new Subject<string>();
以及要从组件更新时:
constructor(private myService: MyService){
this.myService.title.next('New Title')
}
要获得它的价值,您需要订阅它:
constructor(private myService: MyService) {
this.myService.title.subscribe(title => {
console.log(title)
})
}
如果不是字符串,则可以更改类型。
答案 1 :(得分:0)
如果我理解,您必须在html中调用一些根据页面标题返回当前用户组的方法。 首先,您可以创建到userGroups的映射而不是列表,并在服务上创建方法以返回示例:
Map<String, UserGroup> = new Map();
public getCurrentUserGroup(title):UserGroup{
return userGroupsMap.get(title);
}
然后在html上调用此方法