我使用php从数据库中获取数据,以HTML格式提供。 li元素看起来像这样
<input type="checkbox" ng-model="check_list[i]" id="i" value="something">
当然“i”会替换为实际HTML中的数字,因此元素包含check_list[1]
,id=[1]
等等......
我现在如何在控制器中访问这些ng-model?我想迭代所有现有的 check_list[i]
元素(它不应该硬编码存在哪些元素,我想让它保持通用),并收集它们,将所有已检查的元素发送回php脚本将其存储在db中。所以我正在尝试这样的事情。
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 :(得分:1)
我认为没有勾选任何复选框 $ 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]);
}
}
}