2017-03-01 78 views
1

我寫在離子2.一個小應用程序在這個程序,我有一個「Checkboxmodal」,可以在我APPSTATE元素列表創建一個選擇。離子/角複選框定製邏輯

在HTML:

<ion-list> 
    <ion-item *ngFor="let key of itemDic.keys()"> 
     <ion-label>{{itemDic.get(key)}}</ion-label> 
     <ion-checkbox (click)="toggleItem(key)" value="key" [checked]="selectedItems.indexOf(key) > -1"></ion-checkbox> 
    </ion-item> 
</ion-list> 

的切換方法:

// Data used 
this.itemDic = ... // local. saves possible options 
this.selectedItems = ... // reference to appstate (global object). saves the selected values 

// toggle function 
toggleItem(item: any) { 
    if(searchState.contains(...)) { 
     searchState.remove(...); 
    } else { 
     if (this.selectedItems.length >= this.maxItems) 
      return; 

     searchState.set(...); 
    } 
} 

時,我想在一次擴展其功能,只允許X的選擇,我遇到了下面的問題:

  • 數據綁定似乎不起作用
  • 角將更新的觀點,即使我的功能並沒有改變模型

我怎麼可以:更改視圖或數據

  • 停止角/離子
  • 決定對自己的模型的變化
  • 只顯示數據的作爲結合
的電流值

回答

0

我只是看起來,沒有辦法實現,我想要的。我「解決」與其他方法的問題:

<ion-checkbox 
    (click)="toggleItem(key)" 
    value="key" 
    [disabled]="selectedItems.indexOf(key) === -1 && selectedItems.length >= 3" 
    [checked]="selectedItems.indexOf(key) > -1"> 
</ion-checkbox> 

我發現,你可以禁用的複選框,通過結合殘疾人財產。所以我只檢查當前的複選框

  • 沒有被選中
  • 超過最大複選框被檢查

,並禁用它,如果雙方都是如此。

如果有人知道一個更好的辦法,請張貼。