【问题标题】:Binding ion-checkbox values with initial checked values将 ion-checkbox 值与初始选中值绑定
【发布时间】:2017-11-19 06:16:34
【问题描述】:

我在ng-repeat 中有一些ion-checkboxes,最初有一些复选框已选中。我似乎无法在表单提交上绑定这些初始值。以下是我目前正在使用的内容:

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

【问题讨论】:

    标签: javascript angularjs checkbox ionic-framework


    【解决方案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 中进行了测试,它可以工作! 我真的不知道你要找的是不是这个,但请告诉我!

    【讨论】:

      【解决方案2】:

      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"}];

      【讨论】:

        猜你喜欢
        • 2012-10-09
        • 2020-01-13
        • 1970-01-01
        • 2014-08-27
        • 2012-05-04
        • 1970-01-01
        • 2021-10-21
        • 2018-10-28
        • 1970-01-01
        相关资源
        最近更新 更多