获取离子复选框值的方法

时间:2016-09-02 21:24:47

标签: angularjs ionic-framework

我试图从复选框中获取值,以便我可以绑定它。 但我一直得到它的条件(真或假)

当我点击复选框时,它会像我这样设置我的模型:

[9:true,15:true] 我想要的是一个平面阵列,如:

[9,15] 是否有更好的方法从复选框中获取值并将它们设置在模型的数组中?

enter image description here

    <ion-checkbox ng-repeat="model in models | filter:query" ng-model="order.models[model.id]" >{{model.model_number}} </ion-checkbox>
</ion-item>
current order: {{order}}

    .controller('compareModelsCtrl',['$scope','$http', '$state' ,
function($scope, $http, $state,$location) {
$http.get('js/data.json').success(function(data){
$scope.models = data;
$scope.whichmodel = $state.params.modelId;
//$scope.toggleStar = function(model){
// model.star = !model.star;
//}
$scope.order = {};

2 个答案:

答案 0 :(得分:1)

默认情况下,离子框架不会这样做。您需要在下面的代码中使用自定义函数,例如format。因为,我没有你的data.json文件,我模仿了两个离子复选框。

     <ion-content ng-controller="LoginCtrl">
       <ion-checkbox  ng-model="order[0]" ng-change="format()" >1 </ion-checkbox>
       <ion-checkbox  ng-model="order[1]" ng-change="format()" >2</ion-checkbox>
    current order: {{modifiedOrder}}
  </ion-content>

并在控制器内部实现了以下功能。

angular.module('ionic.example', ['ionic'])
.controller('LoginCtrl', function($scope) {
$scope.order={};
$scope.format=function(){
  $scope.modifiedOrder=[];
  angular.forEach($scope.order, function(value, key) {
    if(value){
      $scope.modifiedOrder.push(parseInt(key));
    }
});
}
});

以前的订单是modifiedOrder 请在此处查看工作代码https://codepen.io/anon/pen/vXYvPG 古德勒克!

答案 1 :(得分:1)

enter image description here

在Html文件中,

<ion-content padding>
  <ion-input type="text" placeholder="What's Your groups name?"></ion-input>
  <ion-list>

        <ion-item *ngFor="let friend of friendList">
          <ion-label>{{friend.name}}</ion-label>
          <ion-checkbox [(ngModel)]="friendsSelected[friend.name]"></ion-checkbox>
        </ion-item>  
    </ion-list>
    <button ion-button  (click)="save()">Save</button>
</ion-content>

在您的TS文件中 我创建了一个变量friendsSelected

 friendsSelected:any={};

   save(){
    var array = [];
    for(var i in this.friendsSelected) {
        console.log(this.friendsSelected[i]);
        if(this.friendsSelected[i] == true) {
            array.push(i);
        }
    }
    console.log(array);
  }