Javascript angular2在组件、getter和setter之间共享数据
我有一个和这家伙一样的问题: que提供的解决方案不足以让我的项目正常工作,所以我将用更多的细节来解释我的情况,看看你们是否能帮助我 我有一个服务数据库。service.ts: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
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个小时后,我才知道这一点。