在控制器

时间:2015-07-07 16:03:01

标签: javascript arrays json angularjs

使用命令console.log($scope.data),我可以看到我的json文件。我还可以使用<div ng-repeat="item in data">查看视图中的所有项目,但console.log($scope.data[0])console.log($scope.data[0].name)返回错误"undefined"console.log($scope.data.length)返回0.如何访问控制器中的项目 的修改 $ scope.data包含一个json文件。 $scope.data = service.query();,它看起来像enter image description here
我不明白为什么当ng-repeat工作时长度返回0

1 个答案:

答案 0 :(得分:0)

您似乎已从问题中删除了所有相关详细信息(例如service.query实施)。

plunker可能会对正在发生的事情有所了解。

var app = angular.module('app', []);

app.factory('data', function ($timeout) {
  var data = [];

  return {
    query: function () {
      $timeout(function () {
        data.push(1, 2, 3);
      }, 1000);

      setTimeout(function () {
        data.push('Oops, ng-repeat is unconscious of this one');
      }, 2000);

      return data;
    }
  };
});

app.controller('AppController', function($scope, data) {
  $scope.data = {
    agile: [1, 2, 3],
    lazy: data.query()
  };

  $scope.$watch('data.lazy', function (newVal, oldVal) {
    if (newVal === oldVal) return;
    console.log($scope.data.lazy[0]);
  }, true);
});