2016-04-26 41 views
1

我使用php從數據庫中獲取數據,以使其在HTML中可用。 li元素是這個樣子從角度收集HTML數組

<input type="checkbox" ng-model="check_list[i]" id="i" value="something"> 

當然的「我」被替換爲實際的HTML一些,所以這些元件具有例如check_list[1]id=[1]等等...

我現在如何在控制器中訪問這些ng模型?我想遍歷所有現有的check_list[i]元素(它不應該硬編碼哪些元素存在,我想讓它通用),並收集它們,將所有選中的元素髮送回php腳本以將其存儲在數據庫中。所以我正在嘗試這樣的事情。

submitForm.insertData = function(){ 
     var check_list_elements = []; 
     for(var i = 1; i <= 83; i++) { 
      //add only those ng-models check_list[i], that really exist into check_list_elements 
      if ($scope.check_list[i] !== undefined){ 
       $check_list_elements.push($scope.check_list[i]); 
      } 
     } 

但我不斷收到

Cannot read property '1' of undefined at t.insertData 

所以$scope.check_list[i]顯然是錯誤的。

它是如何正確地完成的?

回答

0

我認爲沒有檢查任何複選框$ scope.check_list是未定義的,所以你不能讀取undefined的屬性1。在控制器中定義$ scope.check_list當初始化控制器或itarate前檢查在submitForm.insertData功能

submitForm.insertData = function(){ 
     var check_list_elements = []; 
     if($scope.check_list){ 
      for(var i = 1; i <= 83; i++) { 
      //add only those ng-models check_list[i], that really exist into check_list_elements 
       if ($scope.check_list[i] !== undefined){ 
       $check_list_elements.push($scope.check_list[i]); 
       } 
      } 

     }