javascript - 从另一个 Controller 返回后,ui-grid api 未定义

标签 javascript angularjs angularjs-scope angular-ui-grid ui-grid

请通过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 未定义。 。 。

最佳答案

Figured it out of after a bit of work - Click for 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. 删除ng-controller="monitoringCtrl as monitoringCtrl从button.html 来看,由于该行代码,它正在创建 8 个 Controller 实例。

  5. 测试一下

enter image description here

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

关于javascript - 从另一个 Controller 返回后,ui-grid api 未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38522138/

相关文章:

javascript - 将更新绑定(bind)到链接内的指令元素,而不是内联 <el someattr ="{{val}}"></el>

javascript - 在我的案例中如何向第一个 html 元素添加一个类?

javascript - 如何小写对象中键的第一个字母?

javascript - AngularJS 在 View 更改时重新触发 Controller 的最佳方法

javascript - AngularJS 1.5 : scope. $watch 内部链接函数不会在模型更改时更新

javascript - 如何从服务器获取 AngularJs 数组中每个元素的数据

javascript - 如何检查 Stripe 元素中的 Stripe 优惠券有效性?

javascript - 如果我添加 alert(),为什么我的 JavaScript 函数执行不确定?

javascript - 我们可以更改预定义函数的定义吗?那么如何预防呢?

javascript - AngularJS $http.post 不适用于 Chrome,仅适用于 IE