2017-09-01 8 views
0

これは私のプロジェクトにとって非常に特殊な問題です。ネストされた* ngForループのインデックスにアクセスする

私はAngularで各行が単語であり、Columnsが言語であり、各セルがその言語の対応する翻訳である動的テーブルを構築しています。

したがって、問題は、ユーザーがクリックしたテーブルセルを追跡して、そのセルの値を作成または更新できるようにすることです。

<tbody> 

    <tr *ngFor="let data of data"> 

    <td contenteditable='true' (keyup.enter)="saveEntry($event)" 
    width="300px" height="40px" >{{data.key}}</td> 

    <td *ngFor="let column of tableColumns;let j = index" 
     contenteditable='true'    
    (keyup.enter)="onRowClick($event, column.languageID,    
     data?.value[0]?.dictionaryEntryID)"       

    (click)="TranslationClick($event,data.value[k].dictionaryID)"> 


    <ng-container *ngFor="let dataValue of data.value ;let k = index"> 

    <span *ngIf="column.languageID==dataValue.languageID"> 

    {{dataValue.translation}}</span> 
    </span> 
    <span *ngIf="column.languageID!=dataValue.languageID"> 
    </span> 
    </ng-container> 
    </td> 
    </tr> 
    </tbody> 

ヘルプが必要:私はこのような私の TranslationClick方法でNG-容器に* ngForのインデックスKを取得する必要があります:

のコードは次のようなものである

(click)="TranslationClick($event,data.value[k].dictionaryID) 

私はng-container * ngForループが最初の後に作成されていることを知っていますが、私は手前でそのセルのインデックスkを得ることができる方法はありますか?

また、表の個々のセルを追跡する他の方法がありますか?

答えて

0

定義されているテンプレート外のテンプレート変数にアクセスする方法はありません。

k

<ng-container *ngFor="let dataValue of data.value ;let k = index"> 

    <span *ngIf="column.languageID==dataValue.languageID"> 

    {{dataValue.translation}}</span> 
    </span> 
    <span *ngIf="column.languageID!=dataValue.languageID"> 
    </span> 
    </ng-container> 
+0

内でアクセスすることができ、あなたが答えで述べたように、そのインデックスを使用せずに、そのインデックスの値にアクセスするための他の方法はありますか? – KIA

+0

@KIA with NgModel and NgModelOnChange – Swoox

+0

あなたが達成しようとしていることは私には不明です。上記のコードの 'k'uusideは、私の答えでは、' data.value'の長さの0tpからの数の集合です。 'あなたはどんな価値があると思いますか? –

関連する問題