ionic-如何在屏幕上显示来自服务的信息

时间:2019-08-06 18:48:47

标签: angular ionic-framework

我已经从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更新为新对象...

这是正确的方法吗?

2 个答案:

答案 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上调用此方法