无法阅读财产'选择'未定义的

时间:2015-04-20 15:57:51

标签: angular-ui-grid

我正在使用ui-grid。但我无法从下载功能获得$ scope.gridApi。并得到错误:无法读取未定义的属性“选择”。有人可以告诉我原因吗?感谢。

    $scope.gridOptions.onRegisterApi = function (gridApi) {
        $log.info('gridApi...');
        $scope.gridApi = gridApi;
        $log.info($scope.gridApi);
    };
    $scope.download = function ($event) {
        $event.stopPropagation();
        var selectedRows = $scope.gridApi.selection.getSelectedRows();
        $log.log('selectedRows....');
        $log.log(selectedRows);
    };

3 个答案:

答案 0 :(得分:8)

有三个可能的原因:

  • 首先,不包括正确选择,要么不将js代码中的模块作为依赖项包含在内,要么不在html中包含网格定义中的指令。这将导致gridApi,但没有gridApi.selection
  • 其次,尝试在onRegisterApi之前调用此方法,或者在onRegisterApi已经触发后在gridOptions上定义onRegisterApi。这将导致方法未被调用,因此$ scope.gridApi未定义,从错误文本中听起来就像问题所在。
  • 最后,您的调用问题意味着下载调用的$范围与您放置gridApi的$ scope不同。这不应该真的发生,但我想它可以。您可以通过在方法中放置断点来查看它具有的$ scope范围。

答案 1 :(得分:3)

我在检查后解决了这个问题:

  • ui-grid css loaded(ui-grid.min.css
  • ui-grid javascript库已加载(ui-grid.min.js
  • 'ui.grid''ui.grid.selection'已添加到模块初始化app = angular.module('app',[ 'ui.grid','ui.grid.selection' ])))
  • 将ui-grid-selection指令添加到ui-grid标记
    <div id="my-grid" ui-grid="gridOptions" ui-grid-selection ></div>

答案 2 :(得分:0)

以上答案非常有用。 但就我而言,我在删除后解决了它:          -ui-grid.core.min.js          -ui-grid.cellnav.min.js          -ui-grid.selection.min.js

从我加载的js中,仅保留ui-grid.min.js