无法设置属性'网格'的未定义

Cannot set property 'grid' of undefined

本文关键字:未定义 网格 设置 属性      更新时间:2023-09-26

我是angular和ng网格的新手,我正在调用一个简单的静态json文件,但网格根本没有显示,我得到的消息是:

无法设置未定义的属性"grid"

有人能帮忙吗?

我的代码看起来像这个

angular.module('healthyLivingApp')
  .controller('SubscribersCtrl', function ($scope,$http) {
    $http.get('http://localhost:9000/subscribers.json').success(function(data){
        $scope.subscribers = data;
    });
     $scope.gridOptions = {
        data:'subscribers'
    }
  });
app.js
.module('healthyLivingApp', [
'ngAnimate',
    'ngResource',
    'ngRoute',
    'ngSanitize',
    'ngTouch',
    'ngGrid',
    'ui.bootstrap'
  ])
HTML
<h1>Subscribers</h1>
<div class="gridStyles" ng-grid="gridOptions">
</div>

我使用的是bower,Angular"1.3.12",ng grid"2.0.14",jQuery"2.1.3"

控制器中有一个异步任务

$http.get('http://localhost:9000/subscribers.json').success(function(data){
    $scope.subscribers = data;
});

当控制器完成初始化,Angular开始渲染DOM时,这个异步尚未完成,这意味着$scope.subscribers仍然未定义。您已经声称ng-grid应该从subscribers 读取数据

$scope.gridOptions = {
    data:'subscribers'
}

因此,一个合适的解决方案是,在控制器的顶部定义$scope.subscribers

angular.module('healthyLivingApp')
  .controller('SubscribersCtrl', function ($scope,$http) {
      $scope.subscribers = [];
      $http.get('http://localhost:9000/subscribers.json').success(function(data){
        $scope.subscribers = data;
      });
      $scope.gridOptions = {
        data:'subscribers'
      };
  });

我认为这是关于数据绑定策略的。

在视图中,如果绑定某些数据,它将使用引用进行绑定。在您的代码中,视图将与$范围中的subscribers绑定。但是你更新了控制器中的引用,然后数据就得到了。

因此,尝试与someObjName.subscribers结合。然后CCD_ 7将被绑定和监视。如果对象的属性发生更改,则视图将更新。