错误"无法设置未定义的属性gridDim"在角js

时间:2015-01-22 09:39:24

标签: angularjs

获取错误"无法设置未定义的属性gridDim"在角度js中使用ng-grid。我已经宣布vm.gridOptions = {data:' vm.course_view'};。plz帮助我

<section class="mainbar">
<section class="matter">
    <div class="container">
        <div class="row" ng-controller="Course_view">
         <div class="col-lg-5 col-lg-offset-2">
            <div class="widget wblue">
                <div vis-widget-header title="{{vm.title}}"></div>
                <div class="widget-content user">
                   <!--  <table data-toggle="table" data-height="150" class="table table-condensed table-hover">
                        <thead>
                        <tr>
                            <th>Lesson</th>
                        </tr>
                        </thead>
                        <tbody>
                        <tr ng-repeat="c in vm.course_view"
                            >
                            <td>{{c.firstName}}</td>
                        </tr>
                        </tbody>
                    </table> -->
                    <div class="gridStyle"  ng-grid="course_view"></div>
                </div>
                <div class="widget-foot">
                    <div class="clearfix"></div>
                </div>
            </div>
            </div>
        </div>
    </div>
</section>

这是控制器代码

 (function() {
    'use strict';

    angular
        .module('app.course_view')
        .controller('Course_view', Course_view);

    /* @ngInject */
    function Course_view($state, dataservice, logger) {
        var vm = this;
        vm.course_view = [];
        vm.title = 'Course_view';
        vm.gridOptions = { data: 'vm.course_view', columnDefs: [
                        {field:'firstName', displayName:'firstName'}
                         ]};

        activate();

        function activate() {
            return getCourse_View().then(function() {
                logger.info('Activated course_view View');
            });
        }

        function getCourse_View() {
            return dataservice.getCourse_View().then(function(data) {
                vm.course_view = data;
                debugger;
                return vm.course_view;
            });
        }
    }
})();

1 个答案:

答案 0 :(得分:3)

请尝试更改以下代码:

  1. <div class="row" ng-controller="Course_view">
  2. <div class="row" ng-controller="Course_view as courseCtrl">
    

    1. <div class="gridStyle" ng-grid="course_view"></div>
    2. <div class="gridStyle"  ng-grid="courseCtrl.course_view"></div>
      

      请在评论中给我反馈你的成功/失败。

      <强>更新

      我已经通过工作示例为您创建了JSFiddle

      我是一个简单的例子,但它应该有效。

      <div ng-controller="CourseViewCtrl as ctrl">
        <div class="gridStyle" ng-grid="ctrl.gridOptions"></div>
      </div>
      
      (function() { 
      'use strict';
      
      var myApp = angular.module('myApp',['ngGrid']);
      
      myApp.controller('CourseViewCtrl', CourseViewCtrl);
      
      function CourseViewCtrl($http) {
          var vm = this;
      
          vm.course_view = [];
          vm.gridOptions = { 
              data: 'ctrl.course_view'
          };
      
          activate();
      
          function activate() {
              return $http.get("/data").success(function(data) {
                  vm.course_view = data;
              });
          };
      }
      })();
      

      我想注意一下代码之间的主要区别:

      控制器中的网格选项:

      vm.course_view = [];
      vm.gridOptions = { 
          data: 'ctrl.course_view'
      };
      

      视图上的网格:

      <div class="gridStyle" ng-grid="ctrl.gridOptions"></div>