0

Hy! 親コンテナのプロパティを属性ディレクティブと入力で共有できますが、子コンポーネントが<router-outlet>である場合は機能しません。どのようにすべてのコンポーネントと共有するためのアドバイス?Angular2すべてのコンポーネントのグローバルユーザーオブジェクト

Btw app.componentで非同期呼び出しを使用するグローバルユーザーを取得します。サービスの使用についてhttps://angular.io/docs/ts/latest/cookbook/component-communication.html

@Injectable() 
export class User { 
    ... 
} 

@Component({ 
    selector: 'my-app', 
    providers: [User], 
    ... 
}) 
export class AppComponent {} 


@Component({ 
    selector: 'routed-comp', 
    providers: [], 
    ... 
}) 
export class RoutedComponent { 
    constructor(private user:User) {} 

    /* use this.User here */ 
} 

答えて

1

どのように説明したようにこの場合

+0

ありがとう、私はダムだった。非同期経由でユーザーObjを取得するためにサービスを使用しましたが、サービスを一度取得してオブジェクトを返すだけでオブジェクトを返すことはできません。 :) –

2

は、共有サービスを使うのか?サービス(UserServiceと呼ぶ)をAppComponentの配列viewProvidersに添付してください(アプリケーションのために一度だけ作成され、シングルトンです)。

TypeScriptを想定すると、UserServiceクラスは@Injectable()で装飾されている必要があります。そのため、コンポーネントやその他のサービスで自動配線できます。グローバルユーザーオブジェクトをインスタンス変数として格納します。これは、ユーザーオブジェクトを1か所で処理できるようになりました。

+0

あなたもありがとう、私は@ JoVerの答えが彼がより速かったので受け入れました。お互いが解決策を見つけるのを手伝ってくれました。 –

関連する問題