2016-06-30 92 views
0

我有一個複選框有點問題:角度複選框錯誤

我有一個objet數組。我在這個數組上做了一個ng-repeat,並且我在每個元素上關聯了複選框。

<li ng-repeat="title in treeZone track by $index"> 

<input type="checkbox" ng-model="title.selected" ng-click="functionAdd($index, title.selected)"/> {{title}} 

</li> 

我的問題是,我想獲得所有選中的複選框的功能。

要做到這一點,我寫了:

scope.funtionAdd = function() { 

      scope.tree_array = ""; 

      angular.forEach(scope.treeZones, function(title) { 

      if (title.selected) { 

       scope.tree_array = scope.tree_array + title.name + " "; 

      } 

      }); 

     } 

此功能很好,但它會導致錯誤:「‘選擇’的類型‘區’不存在屬性」因「title.selected」

瞭解我的Zone對象有3個屬性:id,name,parent。

如何解決這個問題知道我唯一的方法來知道一個區域被選中,是與「title.selected」。

感謝您的幫助:)

回答

0

保持一個獨特的屬性在treeZone,並用它來設置複選框

<li ng-repeat="title in treeZone track by $index"> 
<input id="{{title.TYPE}}" type="checkbox" ng-model="title.selected" ng-click="functionAdd($index, title.selected)"/> {{title}} 
</li> 

然後在JavaScript就可以檢查所有的複選框被選中什麼ID:

scope.tree_array = []; 
     for (var i = 0; i < scope.treeZone .length; i++) { 
      document.getElementById(scope.treeZone[i].TYPE).checked = true; 
      scope.tree_arra.push({ "TYPE": scope.treeZone[i].name}); 
     } 
+0

Thx爲您的答案!我現在得到這個錯誤:「屬性'選中'在'HTMLElement'類型上不存在。」也許因爲我使用打字稿?大概是 – Olivier

+0

。試試這個 var element = document.getElementById(scope.treeZone [i] .TYPE); var isChecked = element.checked; – Nishi

+0

再次感謝:)現在我已經:「屬性'類型'不存在類型'區域'。」 – Olivier