具有2个属性的数组,AngularJs

时间:2017-02-07 17:48:02

标签: angularjs ionic-framework

我需要将2个字符串保存到这样的数组中:

array[0].name = "William"
array[0].dni = "00112233Z"

所以我可以使用ng-repeat:

<ul>
    <li ng-repeat="item in array">
      {{item.name}}
      {{item.dni}}
    </li>
  </ul>

但我不知道如何在Angular中声明它,无论我如何尝试,我都会收到此错误:TypeError:无法设置属性&#39; name&#39;未定义的。

以下是我获取数据的代码:

  $scope.array=[];
    $scope.initial = function () {
        $http.get('data/people.json').success(function (data) {
              $scope.jsonData = data;
              for(var i=0; i<$scope.jsonData.persons.length;i++){
                $scope.array[i].name=$scope.jsonData.persons[i].person.nombre;
                $scope.array[i].dni=$scope.jsonData.persons[i].person.dni;
              }
        });
    };

任何帮助都将不胜感激。

问候。

1 个答案:

答案 0 :(得分:0)

您必须先在数组中设置一个对象,以指定以下属性:

$scope.array=[];
$scope.initial = function () {
    $http.get('data/people.json').success(function (data) {
          $scope.jsonData = data;
          for(var i=0; i<$scope.jsonData.persons.length;i++){
            $scope.array[i] = {};
            $scope.array[i].name=$scope.jsonData.persons[i].person.nombre;
            $scope.array[i].dni=$scope.jsonData.persons[i].person.dni;
          }
    });
};

否则array[i]未定义,因为它是一个空数组