我试图从复选框中获取值,以便我可以绑定它。 但我一直得到它的条件(真或假)
当我点击复选框时,它会像我这样设置我的模型:
[9:true,15:true] 我想要的是一个平面阵列,如:
[9,15] 是否有更好的方法从复选框中获取值并将它们设置在模型的数组中?
<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 = {};
答案 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)
在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);
}