2016-06-25 9 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 
} 

を...私はデシベル(午後2時15分18秒)に保存することにより、選択したIDを取得することができます。
ページを再度読み込むときに選択したIDを表示する必要があります。私は、サービスからデータを取得し、以下のような配列に変換します。これを行うに

:それは15,15,18のボタンの状態を設定するよう

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

が今どのように私は、オブジェクト・モデルを作成することができますチェックする?

私は以下のようにそれをハードコーディングすることができ、それが正しく設定されますが、私は$ scope.selroomsをループする必要があるし、ユーザーによって保存されているものを確認してください。

$scope.checkModel = {}; 

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

答えて

1

あなたは可能性がループを通って$ 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

関連する問題