2017-03-01 93 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> 

我发现,你可以禁用的复选框,通过结合残疾人财产。所以我只检查当前的复选框

  • 没有被选中
  • 超过最大复选框被检查

,并禁用它,如果双方都是如此。

如果有人知道一个更好的办法,请张贴。