Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/478.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript angular2在组件、getter和setter之间共享数据_Javascript_Angular_Typescript_Getter Setter - Fatal编程技术网

Javascript angular2在组件、getter和setter之间共享数据

Javascript angular2在组件、getter和setter之间共享数据,javascript,angular,typescript,getter-setter,Javascript,Angular,Typescript,Getter Setter,我有一个和这家伙一样的问题: que提供的解决方案不足以让我的项目正常工作,所以我将用更多的细节来解释我的情况,看看你们是否能帮助我 我有一个服务数据库。service.ts: import {Injectable} from "@angular/core"; @Injectable() export class dataBaseService{ serviceData: string; get data():string{ return this.serv

我有一个和这家伙一样的问题:

que提供的解决方案不足以让我的项目正常工作,所以我将用更多的细节来解释我的情况,看看你们是否能帮助我

我有一个服务数据库。service.ts:

import {Injectable} from "@angular/core";

@Injectable()
export class dataBaseService{

    serviceData: string;

    get data():string{
        return this.serviceData;
    }

    set data(value:string){
        this.serviceData = value;
    }
}
此服务显然已作为提供商添加到app.module.ts中

关于我的组件A,我有:

import { Component, OnInit } from '@angular/core';
import {dataBaseService} from "../dataBase.service";




@Component({
  selector: 'app-tipo',
  templateUrl: './tipo.component.html',
  styleUrls: ['./tipo.component.scss'],
    providers: [dataBaseService]
})
export class A implements OnInit {


  constructor( public dataService:dataBaseService) {
      this.dataService.serviceData = 'hello';
  }



  ngOnInit() {
      console.log(this.dataService.serviceData);
  }

}
在这里之前一切都很好。如果我在控制台上显示:

console.logthis.dataService.serviceData;它会像预期的那样回复我你好

但在我的下一个组件上,当我再次打印相同的数据时,它显示未定义:

import { Component, OnInit } from '@angular/core';
import {dataBaseService} from "../dataBase.service";

@Component({
  selector: 'app-modelo',
  templateUrl: './modelo.component.html',
  styleUrls: ['./modelo.component.scss'],
    providers: [dataBaseService]
})
export class ModeloComponent implements OnInit {



  ngOnInit() {
      console.log(this.dataService.serviceData);      
  }
    constructor(public dataService: dataBaseService) {

    }

}
console.logthis.dataService.serviceData;它返回未定义的。。 那么,我如何保存我放在第一个组件上的数据并在另一个组件上显示它呢?我错过了什么

更新:


像我这样的一些人在stack上找不到其他问题的答案,这是因为您必须在module.ts上全局添加提供者,而不是单独添加提供者

正如您所说,您已经在模块级添加了提供商,请尝试从组件中注释提供商声明。

我将此问题标记为重复问题,如果不从组件中删除提供商阵列中的服务不起作用,请ping我,但我怀疑这是您唯一的问题;已经编辑过了!谢谢确切地对于像我这样在另一个问题上找不到答案的人来说,将提供者改为全球而不是个人。为什么会这样?我的意思是,为什么如果我单独添加它们而不是全局添加它们,它只会生成一个实例,如果我全局添加它们,它将全局工作?----->哈哈,我只是用这个问题回答了自己。。很明显!!哈哈!!!!英雄联盟我也面临着同样的问题,在挣扎了2个小时后,我才知道这一点。