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

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


服务:


@Injectable()

export class DataService {


    public msgs = [];


    constructor() { }       


}

现在,我在组件中使用此变量:


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;


    }    

}    

我只张贴了必要的代码this.dataService.msgs。当我到达另一个组件时,this.dataService.msgs的数据仍然存在,但是当我回到原来Messagescomponent的this.dataService.msgs位置,undefined直到我再次填充它,但我需要其中的数据。有人知道该怎么做吗?


谢谢


缥缈止盈
浏览 692回答 2
2回答

素胚勾勒不出你

关于echonax答复的简短说明是,提供者是按层次结构工作的。如果将其添加到应用程序模块中,它将在整个应用程序中正常工作,因此不应在其他任何地方“提供”它。但是,如果不需要“全局”服务,则只需在父组件上提供即可。
打开App,查看更多内容
随时随地看视频慕课网APP