1

请通过 plunker

 vm.gridOptions = {
        enableSorting: true,
        columnDefs: [
            {field: 'deviceName'},
            {field: 'ip'},
            {
                field: 'Action', enableSorting: false,
                cellTemplate: '/monitoring_page/modals/buttonTemplate.html'
            }
        ],
        data: vm.dataStack,
        onRegisterApi: function (gridApi) {
            vm.gridApiSource = gridApi;
        }
    };
 //api call after coming from ui-bootstrap modal
  vm.gridApiSource.core.refresh();

http://plnkr.co/edit/Oxo8XdQCysOUvfvhD82z?p=preview

在控制台 gridApiSoucrce 未定义。. .

4

1 回答 1

0

经过一些工作后想通了 - 点击 Plnkr

  1. 添加appScopeProvider: vm到您的网格选项
  2. 将您的网格重新声明为<div ui-grid="vm.gridOptions" ui-grid-pagination ui-grid-save-state class="cover-block"></div>
  3. body将您的声明更改为<body ng-controller="monitoringCtrl as vm">并更新所有调用以使用 vm。

    Example:  ng-click="monitoringCtrl.addDevice()" 
    

    现在应该是:

    ng-click="vm.addDevice()"
    
  4. 从 button.html 中删除ng-controller="monitoringCtrl as monitoringCtrl,由于那行代码,它正在创建您的控制器的 8 个实例。

  5. 测试一下

在此处输入图像描述

如果这对您有用,请接受它以供将来的用户复制。

于 2016-07-22T20:06:21.337 回答