Angular2 Service的字段问题

时间:2017-02-16 10:59:26

标签: javascript angular typescript angularjs-scope

我有服务:

@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) {
  }
}

1 个答案:

答案 0 :(得分:2)

如果你有多个服务实例,每个人都有一个自己的数组,你必须注意你注入相同的服务实例。

我会尝试使用本地存储来存储服务中的数据,而不是可以拥有多个实例,每个实例都可以编辑或返回相同的值: How to store token in Local or Session Storage in Angular 2?

也许这可以解决您的问题: How do I create a singleton service in Angular 2?