2017-10-30 15 views
0

datagridが配列にバインドされています。角型のチェックボックスで双方向結合が機能しない

チェックボックスが

     <input class="checkbox binning-checkbox" type="checkbox" [(ngModel)]="dataItem.isSelected" (ngModelChange)="select(dataItem)" > 

すべてisSelectedと呼ばれるプロパティにバインドされているが、アレイに行く私はせいぜい15は私がしようとしていますので、選択しなければならない限界値を設定しようとしています

public selectedData = []; 

チェックを外すと16番目の項目が選択されます。

ここ
public select(order, element) { 
    this.totalChecked++; 
    let index = this.selectedData.indexOf(order); 
    if (order.isSelected == true && this.selectedData.length < 15) { // && this.selectedData.length < 15 && index === -1 

     this.selectedData.push(order); 
    } 
    else if (order.isSelected == false) { //&& index != -1 
     this.selectedData.splice(index, 1); 
     this.allSelected = false; 
     this.totalChecked--; 
     this.totalChecked--; 
    } 
    else if (this.totalChecked > 15) { 
     this.limitExceeded = true; 
     order.isSelected = false; 
     this.totalChecked--; 
    } 
} 

order.isSelected = false 

チェックボックスをオフにしません。

この

はKendoGridは、この仲間を試してみてください、あなたのhtml要素にcheckedプロパティを追加し、この

<kendo-grid #grid="kendoGrid" [data]="filteredData" [filter]="state.filter" 
+0

私は、パラメータ 'order'はthis.selectedData [index]と同じではないかもしれないと思います。その上でisSelectedを設定しようとします。 – Perrier

+0

チェックボックスがクリックされたとき、 'order'がまだ配列内にない16回目。だから私はそれをfalseに設定することはできません。 「select」関数で受け取ったオブジェクトは、その時点でisSelected = trueで、そのときは –

答えて

0

のようにバインドされている:

checked=condition" 

例:それがチェックされます

checked="order.isSelected" 

条件が真の場合、偽の場合はチェックされません。

+0

ですが、ロジックがngModelChangeにあります このロジックをクリックすることをお勧めしますか? –

+0

チェックされたプロパティを使用して、 –

+0

ビューのチェックボックスをオンまたはオフにする必要がある場合は、コンポーネントベースの(クリック)イベントで何かを行う必要がある場合は、これを試してみるか、(click)= "checkboxEvent($ event)"あなたの要素とコンポーネントの関数:checkboxEvent(event){if(event.target.checked){do ...}} –

関連する問題