在angular2中编写可共享服务

时间:2016-07-09 12:36:47

标签: angular

在角度1中,我将创建如下服务:

// dataCache service used as a cache
angular.module('foo').service('dataCache', function() {
  this.firstname;
  this.lastname;
});

现在,我可以将此服务注入任意数量的控制器或其他服务,并保留或重置firstname和lastname的值。 dataCache是​​一个可共享的服务。

我想在Angular 2中写一些类似的东西

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

@Injectable()
export class dataCache {
  constructor(public firstname: string, public lastname: string) {
    }
}

现在,当我注入此服务时,我收到错误消息

Property 'fistname' does not exist on type 'dataCache'.

这就是它的使用方式

import {dataCache} from '<folder>/datacache.service';

@Page({
  template: ``,
  providers: [dataCache]
})
export class somePage {
  constructor(private data: dataCache) {}
}

1 个答案:

答案 0 :(得分:0)

试试这个,

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

@Injectable()
export class dataCache {

  //------------either--------------------

  public firstname: string="micronyks"; 
  public lastname: string="angular2";

 //------------End--------------------

 //-------------or----------------

  public firstname: string; 
  public lastname: string;

  constructor()
  {
        this.firstname="micronyks";
        this.lastname:"angular2";
  }
  //--------------End-----------------

}

在组件中。

export class app{
    constructor(private ss:dataCache){
            console.log(ss.firstname) //micronyks
    }
}