我有服务:
@Injectable()
export class MyService implements IMyService {
myServiceArray: Array<string> = ["hi", "hello", "yoyo"];
}
此服务注入一个Component,该组件使用ngModel更新字符串数组。当我尝试从Component或Service中打印数组时,一切正常(也就是使用ngModel更新数组)。
我也@Inject这样的服务在另一个。
@Injectable()
export class AnotherService implements IAnotherService {
constructor(public myService: MyService) {
}
printValues() {
console.log(this.myService.myServiceArray);
}
}
当我调用printValues()时,即使我用模型更新数组的值,也会打印[“hi”,“hello”,“yoyo”]!
我做错了什么?
编辑:
组件的代码如下。
@Component({
selector: 'app-root',
providers: [MyService],
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppCustomerData implements IAppCustomerData {
constructor(public myService: MyService) {
}
}
答案 0 :(得分:2)
如果你有多个服务实例,每个人都有一个自己的数组,你必须注意你注入相同的服务实例。
我会尝试使用本地存储来存储服务中的数据,而不是可以拥有多个实例,每个实例都可以编辑或返回相同的值: How to store token in Local or Session Storage in Angular 2?
也许这可以解决您的问题: How do I create a singleton service in Angular 2?