2017-10-23 17 views
0

私はいくつかの角度を動的に作成しようとしています。 静的に作成された作品。例えば、 。角度<popover-content>を動的に作成するにはどうすればよいですか?

<div> 
    <popover-content #pop1 
        title="Hello" 
        placement="right" 
        [closeOnClickOutside]="true"> 
      Popup One 
    </popover-content> 

    <popover-content #pop2 
        title="Hello" 
        placement="right" 
        [closeOnClickOutside]="true"> 
      Popup Two 
    </popover-content> 

    Testing this <span [popover]="pop1" [popoverOnHover]="true">Pop1</span>. 
    Testing this <span [popover]="pop2" [popoverOnHover]="true">Pop2</span>. 
</div> 

ここで、これらのデータを自分のデータから動的に作成したいと考えています。 しかし、この#pop1 /#pop2のものではうまくいきません。

非稼働コード:だから

<div> 
     <popover-content *ngFor="let p of allPops; let index = index" 
         #pop{{index}} 
         title="Hello" 
         placement="right" 
         [closeOnClickOutside]="true"> 
       {{p.message}} 
     </popover-content> 

     Testing this <span [popover]="pop1" [popoverOnHover]="true">Pop1</span>. 
     Testing this <span [popover]="pop2" [popoverOnHover]="true">Pop2</span>. 
    </div> 

、この#pop{{index}}は動作しません。私はまた、次のスタイル[attr.id]="'#pop' + index"で試しました。あまりにも動作しません。カスタムタグの内側には何が特別なのでしょうか?どうすれば動的に作成して動作させることができますか?

答えて

2

これは残念ながら、ここでこの問題の詳細、不可能です。

https://github.com/angular/angular/issues/4581

申し訳ありませんが、アンカーは静的に解析可能でなければならないので、動的に生成することができません。プログラミング言語でローカル変数を動的に作成できないのと同じ方法です。

ローカル参照は、

ところでローカルテンプレートの参照がid属性と同じではありません...私は怖いようなものには適していません。あなたが試したことは、#という接頭辞が付いたid属性を割り当てるためだけに機能します。

https://angular.io/guide/template-syntax#ref-vars

関連する問題