dynamic
  • angular
  • interpolation
  • 2016-06-01 5 views 0 likes 
    0

    私はAngular-2を学習しており、データグリッドコンポーネントを構築し、動的補間の問題に遭遇しています。 他の成分は、以下のようなデータ・グリッドを消費する、と仮定する。Angular2の動的補間

    <data-grid [model] = 'users'> 
        <column header='Last Name' value="lastName" ></column> 
        <column header='First Name' value='firstName' ></column> 
        <column header='Address' value='address' ></column> 
    </data-grid> 
    

    データグリッドコンポーネントは、列のコレクションを保持しています。データグリッドから、列コレクションをループして列ヘッダーを構築し、すべてのデータを表示しようとします。テーブルのヘッダーは簡単ですが、行と列のネストされた内挿を行う方法はわかりません。

    <div class="container" > 
        <table class="table table-hover"> 
         <thead class="thead-default"> 
          <tr> 
           <th template="ngFor let col of columns"> 
            {{ col.header}} 
           <th> 
          </tr> 
         </thead> 
         <tbody> 
          <tr template="ngFor let row of model"> 
           <td template="ngFor let col of columns"> 
           <!-- want to loop though the columns 
           {{row.{{col.value}}}} //How to make this statement works? --> 
           </td> 
          </tr> 
         </tbody> 
        </table> 
    </div> 
    

    この問題を解決する方法はありますか?

    おかげで、

    オースティン

    +0

    も、あなたはこれはかなり面白いと思われる間違ったやり方 –

    答えて

    3

    あなたは追加の評価ブラケットを必要としません。配列のインデックス付けには大括弧を使用します。

    <tr *ngFor="let row of model"> 
        <td *ngFor="let col of columns"> 
         {{row[col.value]}} 
        </td> 
    </tr> 
    

    http://plnkr.co/edit/DVwolRDu0JNcsXTaTrir

    +0

    に* ngForを使用しています! – micronyks

    +0

    ありがとう、それは動作します。しかし、 のような複雑なバインディングの場合、 "{{row.field1}}"、 "{{row.field1}}"などの文字列を補間できるようにする必要があります。 row.field2}}} "またはテンプレートを動的に構築する。 – AustinTX

    +0

    あなたも ' {{れるGetFields(行、列)}} ' – zlace

    関連する問題