我正在尝试从checkbox中获取值,这样我就可以绑定它。但我一直用条件(真或假)得到它
当我单击复选框时,它会像这样设置我的模型:
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 = {};发布于 2016-09-03 11:19:44
Ionic framework在默认情况下不会这样做。您需要在下面的代码中使用自定义函数,如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祝你好运!
发布于 2017-12-12 20:03:38

在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);
}https://stackoverflow.com/questions/39300899
复制相似问题