2016-11-23 4 views
1

@Inputを使用することはできません。これは、2つのコンポーネントがコンポーネントツリー内で離れているためです。コンポーネントBのコンポーネントAのプロパティにアクセスするには?

サービスを使用することは唯一のオプションのように見えますが、基本的にすべてのコンポーネントのAプロパティの複製であるサービスを持つことは非常に残念です。私がAにプロパティを設定するたびに、Bがそれにアクセスできるように、それをサービスに設定する必要があります。非常に効率的ではないようです。

コンポーネントBのコンポーネントAのインスタンスを挿入する方法はありませんか? AはBの親子ではありません。

乾杯!

+1

https://angular.io/docs/ts/latest/cookbook/component-communication.html#!#bidirectional-service –

+0

@GünterZöchbauer私はサービスを認識しています。私の質問をお読みください。 – maximedupre

+0

サービスのプロパティにバインドすることができます –

答えて

0

あなたは、あなたが複製する必要はありませんサービス

@Component({ 
    ... 
    template: <div>{{myService.someProp}}</div> 
}) 
class MyComponent { 
    constructor(private myService:MyService){} 
} 

のプロパティにバインドすることができます。

+0

プロパティの取得時に重複が発生しません。設定時に発生します。設定するには、サービスのコンポーネント+で設定する必要があります。 – maximedupre

+0

あなたは何を意味するのか分かりません。なぜそれをコンポーネントに設定する必要がありますか? 3つは、設定するコンポーネント上のプロパティではありません。 –

+0

ああ。したがって、サービス内のプロパティのみを設定することを提案しています。それについて考えなかった。 – maximedupre

関連する問題