将离子复选框值与初始检查值绑定

时间:2017-06-16 12:53:54

标签: javascript angularjs checkbox ionic-framework

我在ng-repeat中有一些离子复选框,最初检查了一些复选框。我似乎无法在表单提交上绑定这些初始值。以下是我到目前为止所做的工作:

HTML:

<ion-list>
        <label ng-repeat="item in items">
            <ion-checkbox ng-model="item.checked" ng-checked="itemCheck(item)">
                {{item.name}}
            </ion-checkbox>
        </label>
 </ion-list>

JS:

$scope.items = [{name:"name1"},{name:"name2"},{name:"name3"},{name:"name4"}];
$scope.itemCheck = function(data){
    $scope.checkedItems = [{name:"name2"},{name:"name3"}];
    $scope.checkedResult = $scope.checkedItems.filter(function(item) {
            return item.name == data.name;
    });

    if ($scope.checkedResult.length > 0){
        return true;
    } else {
        return false;
    }
}

https://codepen.io/pixeloft/pen/LLboWG?editors=1000

2 个答案:

答案 0 :(得分:0)

ng-modelng-checked放在一起很奇怪。

我只使用ng-model,我没有问题。 只需保持模型简单:而不是$scope.checkedItems = [{name:"name2"},{name:"name3"}];为什么不设置每个项目的检查属性?

像这样初始化你的项目: $scope.items = [{name:"name1"},{name:"name2", checked: true},{name:"name3", checked: true},{name:"name4"}];

答案 1 :(得分:-1)

试试这种方式。

HTML

<ion-list>
        <label ng-repeat="item in items">
            <ion-checkbox ng-model="item.checked" ng-checked="itemCheck(item,$index)">
                {{item.name}}
            </ion-checkbox>
        </label>
 </ion-list>

JS

$scope.items = [{name:"name1"},{name:"name2"},{name:"name3"},{name:"name4"}];
$scope.itemCheck = function(data,index){
    $scope.checkedItems = [{name:"name2"},{name:"name3"}];
    $scope.checkedResult = $scope.checkedItems.filter(function(item) {
            return item.name == data.name;
    });

    if ($scope.checkedResult.length > 0){
        $scope.items[index].checked=true;
        return true;
    } else {
        $scope.items[index].checked=false;
        return false;
    }
}

我在codepen中测试过它的确有效! 我真的不知道你是否正在寻找它,但请告诉我!