2016-07-09 5 views
0

で共有可能なサービスを書く、私は以下のようにサービスを作成します。角度1ではangular2

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

今、私はコントローラや他のサービスの任意の数にこのサービスを注入し、保持するか、姓と名の値をリセットすることができます。 dataCacheは共有可能なサービスです。私はこのサービスを注入したとき、私は角2

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

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

に似た何かを書きたい

は今、私は、これはそれが

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

@Page({ 
    template: ``, 
    providers: [dataCache] 
}) 
export class somePage { 
    constructor(private data: dataCache) {} 
} 
を使われている方法である

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

を言ってエラーが出ます

+0

知らんそれは正確なエラーメッセージですが、それは 'あなたがその瞬間にあなたのコントローラにデータキャッシュサービスを注入する場合ので、これは動作しません –

+0

firstname'対fistname''で多分あなたが持っているタイプミスのように見える場合コンストラクタが実行され、コードごとに、どこにも通らない姓と名が必要です。私のコードを試して、それを注入して、それは確かに動作します。 – micronyks

答えて

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----------------- 

} 

in component。

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

これも試してみました。助けてくれませんでした。 – runtimeZero

+0

何をしますか?一度データキャッシュサービスを注入すると、 'firstname'と' lastname'にアクセスできます。あなたのユースケースを教えてください。どのようにデータキャッシュサービスを使用するのか、どのように使用するのかを教えてください。 – micronyks

+0

dataCacheには、異なるページ間で共有する必要のあるデータが格納されています – runtimeZero

関連する問題