首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >角6小页:获取地图服务

角6小页:获取地图服务
EN

Stack Overflow用户
提问于 2019-02-26 15:11:53
回答 1查看 516关注 0票数 1

我需要一张地图进入我的服务在角6应用程序。目前,当我在服务中调用init函数时,我通过参数获得它,并在从存储中获取数据之后,通过组件通过Subject提供它。但有时我会得到undefined而不是地图。

我的代码示例:

page.component.ts

代码语言:javascript
复制
export class PageComponent implements OnInit {

    map$ = new Subject<Map>();

    ngOnInit() {
        this.store.pipe(
            select(fromStore.getData)
        )
        .subscribe(data => {
            this.mapService.doSomething(this.map$);
        })
    }

    mapReady(map: Map) {
        this.map$.next(map);
    }
}

map.service.ts

代码语言:javascript
复制
export class MapService {
    map: Map;
    subsription$: Subscription;

    doSomething(map$: Observable<Map>) {
        this.subsription$ = map$.subscribe(data => {
            this.map = data;
        })
    }
}

有什么其他选择可以让地图进入服务吗?

EN

回答 1

Stack Overflow用户

发布于 2019-02-26 16:01:12

你为什么不能更直接地访问地图呢?似乎你有一些额外的间接方向,你可能不需要。就像这样:

map.service.ts:

代码语言:javascript
复制
export class MapService {
    map: Map = new Map();

    doSomething(map: Map) {
        this.map = map;
    }
}

page.component.ts:

代码语言:javascript
复制
export class PageComponent implements OnInit {

    ngOnInit() {
        this.store.pipe(
            select(fromStore.getData)
        )
        .subscribe(data => {
            this.mapService.doSomething(data);
        })
    }

    mapReady(map: Map) {
        this.mapService.doSomething(map);
    }
}

确切的类型可能不太正确,因为我不知道this.storefromStore在做什么,但是它应该很容易与实际工作的东西相适应。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54888600

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档