使用ng-change AngularJs保存复选框状态

时间:2016-06-08 09:25:56

标签: javascript angularjs checkbox ionic-framework

每当用户打开/关闭应用程序时,我都希望保存核对清单的状态。

这是我第一次在AngularJs / Ionic中使用复选框,我不知道该怎么做。

HTML

 <ion-checkbox class="recup checkbox-balanced"  ng-change="save(0)" ng-model="objc[0]">
      Récupéré ton badge
    </ion-checkbox>

    <ion-checkbox class="recup checkbox-balanced"  ng-change="save(1)" ng-model="objc[1]">
      Récupéré ton PC
    </ion-checkbox>

    <ion-checkbox class="recup checkbox-balanced"  ng-change="save(2)" ng-model="objc[2]">
      Visité les locaux
    </ion-checkbox>

JS

.controller('prem-jourController', function ($scope, localStorageService){

defaultValsJ= [false, false, false, false];
var EngObj=localStorageService.get("StoredCheck");
if(!EngObj)
{
    $scope.objc=defaultValsJ;
}
else {
    $scope.objc=EngObj;
}

$scope.save=function(val) {

    $scope.objc[val]=!$scope.objc[val];
    localStorageService.set("StoredCheck", $scope.objc);
}
});

状态已保存,但复选框不再可点击,我也没有错误。

1 个答案:

答案 0 :(得分:0)

您保存更改的方式有误。 每次单击复选框时,都会更改。方法保存调用然后模型更改值。模型是双向绑定,因此您的复选框将取消选中/再次检查。

这就是为什么你看不到复选框更改状态。

更改此行以修复:

$scope.objc[val]=!$scope.objc[val];