2016-10-21 2 views
2

サービス内の既存のhtmlテンプレートのTemplateRefを取得する方法はありますか?私はポップアップにテキストを表示するためにNgbModalを使用してサービスを作成していAngular2 - サービス内でTemplateRefを取得する

:質問(私は最初の場所で何かを間違ってやっているかもしれないので)の

コンテキスト。このモーダルは内容を表示するためにTemplateRefを必要としますが、作成方法は正確に分かりません。他のオプションは、文字列(エスケープされ、htmlを表示する必要があります)を渡すか、またはコンポーネントを渡すことです(私はどのようにして目的のテキストを渡すかわかりません)。コンポーネントテンプレートから

答えて

2

二つの方法

  • <template>:外

(テストしていません)

@Component({ 
    selector: 'foo', 
    template: '<template #ref1>xxx</template>' 
}) 
class MyComponent { 
    @ViewChild('ref1') template1:TemplateRef; 

    constructor(private template2:TemplateRef, private someService:SomeService) { 
    someService.template2 = template2; 
    } 

    ngAfterViewInit() { 
    this.someService.template1 = this.template1; 
    } 
} 
<foo><template>yyy</template> 
から子として渡さ
  • +0

    それを試みますが、コンポーネントはサービスを必要としますが、サービスにはテンプレートを挿入するコンポーネントが必要です。そうしないと正しく設定されません。それを避ける方法がありますか? – krojew

    +0

    私はそうは思わない。私は、あなたが参照を得るためにコンポーネントが必要であると確信しています。私はここの円形については心配しません。それは双方向性だけです。サービスは、コンポーネントが参照を渡すのを待たなければなりませんが、それ以外の場合はここでは問題は発生しません。 –

    +1

    私はそれが次に行く方法だと思う。ありがとうございます。 – krojew

    関連する問題