2016-06-08 37 views
0

我想在用戶打開/關閉應用程序時保存檢查列表的狀態。使用ng-change保存複選框狀態AngularJs

這是我第一次在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); 
} 
}); 

的狀態保存,但複選框不能點擊了,我沒有錯誤。

+0

在這種情況下,複選框不可點擊,當你在第二次或當打開的應用程序? –

回答

0

您在保存變更的方式上錯了。 每次單擊複選框時,它都會更改。保存方法稱爲模型更改值。模型是雙向綁定,所以您的複選框取消選中/再次檢查。

這就是爲什麼你看不到複選框更改狀態。

改變這一行來解決:

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