2016-06-25 2 views
0

mysql db에 데이터를 저장 한 후 페이지를로드 할 때 사용자가 선택한 체크 박스의 상태를 표시하고 싶습니다.ui-btn-checkboxes 상태를 각도로 설정하십시오.

다음 코드를 사용하고 있지만, 나는 그것을 설정할 수 없습니다입니다 :

<div class="btn-group " ng-repeat="room in classrooms"> 
     <label class="btn btn-default" ng-model="checkModel[room.Id]" 
      uib-btn-checkbox>{{ room.Name }} 
    </label> 
</div> 

컨트롤러 :

//this binds the data 

    Organisation.getAllClassrooms().then(
    function(data){ 
     $scope.classrooms = data.data; 
    } 
) 

    $scope.checkResults = []; 

    $scope.$watchCollection('checkModel', function() { 
    $scope.checkResults = []; 
    angular.forEach($scope.checkModel, function (value, key) { 
     if (value) { 
      $scope.checkResults.push(key); 
     } 
    }); 
    }); 

$scope.Save = function() 
{ 
    var selClassrooms =''; 
    for (var i = 0; i < $scope.checkResults.length; i++) 
    { 
     selClassrooms+=$scope.checkResults[i]+':'; 
    } 
    ... do the save to db 
} 

은 ... 나는 데시벨 (14시 15분 18초)에 의해 저장 선택한 ID를 얻으려면
다음 페이지를 다시로드 할 때 어떤 ID가 선택되었는지 표시해야합니다. 지금은 15,15,18 버튼의 상태를 설정 그래서 개체 모델을 만드는 방법을

$scope.selrooms = data.data[0]['ActivityReportClassrooms'].split(':'); 

:

내가 서비스에서 데이터를 검색하고 아래와 같이 배열로 변환이 작업을 수행하려면 확인할 것인가?

당신은 루프를 할 수
$scope.checkModel = {}; 

$scope.checkModel = { 
    14: true, 
    4: false, 
    18: true 
}; 

답변

1

을 통해 :

사용자가 저장 한 사람을 확인 후, 나는 아래처럼 하드 코딩 수 있으며 올바르게 설정하지만 난 $의 scope.selrooms을 통해 루프 필요 $ scope.selrooms

angular.forEach($scope.selrooms, function (roomId) { 
    if($scope.checkModel[roomId]) { 
     //if roomId exists in model set to true 
     $scope.checkModel[roomId] = true; 
    } 
}; 

희망이 :)

+0

주셔서 감사합니다 도움이 완벽하게 작동! – snowflakes74

관련 문제