从角度为

时间:2016-04-26 10:47:39

标签: php html angularjs

我使用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]显然是错误的。

如何正确完成?

1 个答案:

答案 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]);
               }
           }

        }