标签: sharedservices

角色 - 组件之间的共享服务不起作用

我有一个服务,我声明我的变量.在我的组件中,我使用此变量将数据放入其中.

服务:

@Injectable()
export class DataService {

    public msgs = [];

    constructor() { }       

}
Run Code Online (Sandbox Code Playgroud)

现在我在我的组件中使用这个变量:

export class MessagesComponent implements OnInit {   

    constructor(private dataService: DataService){}

    ngOnInit() {   
        this.getData();   
    }

    getData(){
        let msgs = [];

        if (diffr <= this.geomessage[i].range) {
            this.geomessage[i].dist = diffr;
            msgs.push(this.geomessage[i]);
            //console.log("this message: ", this.geomessage[i]); //DEBUG
        }
        this.dataService.msgs = msgs;

    }    
}    
Run Code Online (Sandbox Code Playgroud)

我只发布了必要的代码.它this.dataService.msgs充满了消息,这很好.当我到另一个组件this.dataService.msgs的数据仍然存在,但是当我回来的TOT Messagescomponentthis.dataService.msgsundefined,直到我再次填满它,但我需要在它的数据.有人知道怎么做吗?

谢谢

variables service components sharedservices angular

5
推荐指数
1
解决办法
1445
查看次数

Angular 4发布和订阅共享服务中的事件

我在我的主要组件中发出了一个事件:

main.component.ts

this.sharedService.cartData.emit(this.data);
Run Code Online (Sandbox Code Playgroud)

这是我的sharedService.ts

import { Component, Injectable, EventEmitter } from '@angular/core';
export class SharedService {
    cartData = new EventEmitter<any>();
} 
Run Code Online (Sandbox Code Playgroud)

在我的其他(Sub)组件中,我想访问此值,但不知何故,订阅不起作用:

dashboard.ts

private myData: any;

constructor(private sharedService: SharedService) {
    this.sharedService.cartData.subscribe(
        (data: any) => myData = data,
        error => this.errorGettingData = <any>error,
        () => this.aggregateData(this.myData));
}
Run Code Online (Sandbox Code Playgroud)

我错过了什么吗?当我将数据作为Injectable传递时,它工作正常.在一些REST调用之后发生事件(在主组件中).

更新

所以问题是在第一次发射事件之后创建了子组件.我想在这种情况下最好直接将数据注入subcompnent.

subscription eventemitter typescript sharedservices angular

5
推荐指数
1
解决办法
4万
查看次数

使用共享服务的示例。棱镜

我有 5 个模块,我使用EventAggregator模式在模块之间进行通信。在我看来,我的代码变得丑陋,并且在我的项目中使用EventAggregator是糟糕的设计。

模块之间的通信方式有以下三种:

  • 松散耦合的事件
  • 共享服务
  • 共享资源

我想了解有关共享服务通信的更多信息。我发现了一篇关于Prism ToolKit 中的 StockTrader 应用程序的文章。

是否有一些在 Prism 中使用共享服务的更轻量级和更清晰的示例,可以使用共享服务在模块之间进行通信?(可下载代码将不胜感激)

c# wpf prism sharedservices

3
推荐指数
1
解决办法
4080
查看次数