2016-06-09 42 views
0

之前,我使用的角度開發一個Web應用程序,我需要一些正在所以我用NG-重複對於相關的數據庫中的內容複選框。我想要一個輔助數組來控制ng模型,並且最初所有的複選框都必須爲true。AngularJS,激活複選框NG-模型聲明

我從一個Ajax請求的數據,我現在不事先我有多少元素會得到,所以我不知道複選框將會有多少是。問題是我不知道輔助數組的大小,直到ajax調用完成,那時複選框已經顯示在屏幕上未選中。

我的代碼如下:

<div class="checkbox" ng-repeat="c in categories"> 
    <label for="{{c.id}}" ><input type="checkbox" ng-model="catselection[c.id]">{{c.name}}</label> 
</div> 

而在控制器我有這樣的:

$http.get("api.php/categories") 
    .success(function(data, status, headers, config){ 
     $scope.categories = data; 
     $scope.catselection = []; 
     for(x in $scope.categories){ 
      $scope.catselection.push("true"); 
     } 
    }) 
    .error(function (data, status, headers, config) {}); 

行爲的其餘部分是正確的,但我需要在一開始被激活的複選框,我已經試過了HTML屬性檢查甚至NG-檢查,我知道,不建議用NG-模型,似乎沒有任何工作至今。

+0

有你window.onload事件試過這樣您就可以申請設置複選框一旦文檔加載完成後 –

回答

1

你試過ng-init

... 
<label for="{{c.id}}" ><input type="checkbox" ng-model="catselection[c.id]" ng-init="catselection[c.id] = true">{{c.name}}</label> 
... 
+0

它完美!我甚至可以刪除填充輔助數組的循環。謝謝!! – davidivad

0

不太清楚的複選框直接修復的,但我想看看到<input>標籤的value=""屬性。當我在自己的項目中使用value=""時,通過無線電輸入,只要我更改了鏈接無線電輸入的ng-model的值,它就會自動選擇正確的無線電輸入。 (項目:http://omrin7.github.io/potg/注意bgImg怎麼設置成「DVA」,它會自動選擇它。)

+0

我看到它適用於您,但它似乎不適用於我的情況。謝謝 – davidivad

0

剛分配響應(數據數組)的範圍變量已創建後您的輔助陣列($ scope.catselection) 。

$http.get("api.php/categories") 
    .success(function(data, status, headers, config){  
     $scope.catselection = []; 
     for(x in $scope.categories){ 
      $scope.catselection.push("true"); 
     } 
    $scope.categories = data; 
    }) 

而不是使用c.id使用$索引。

ng-model ="catselection[$index]" 
+0

它不能改變順序,謝謝! – davidivad