ui-grid api undefined after return from another controller
ui-grid api undefined after return from another controller
请通过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:
- 将
appScopeProvider: vm
添加到您的网格选项
- 将您的网格重新声明为
<div ui-grid="vm.gridOptions" ui-grid-pagination ui-grid-save-state class="cover-block"></div>
将您的 body
声明更改为 <body ng-controller="monitoringCtrl as vm">
并更新所有调用以使用 vm。
Example: ng-click="monitoringCtrl.addDevice()"
现在应该是:
ng-click="vm.addDevice()"
从 button.html 中删除 ng-controller="monitoringCtrl as monitoringCtrl
,由于该行代码,它正在创建 8 个控制器实例。
测试一下
如果这对您有用,请接受它以供将来的用户复制。
请通过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:
- 将
appScopeProvider: vm
添加到您的网格选项 - 将您的网格重新声明为
<div ui-grid="vm.gridOptions" ui-grid-pagination ui-grid-save-state class="cover-block"></div>
将您的
body
声明更改为<body ng-controller="monitoringCtrl as vm">
并更新所有调用以使用 vm。Example: ng-click="monitoringCtrl.addDevice()"
现在应该是:
ng-click="vm.addDevice()"
从 button.html 中删除
ng-controller="monitoringCtrl as monitoringCtrl
,由于该行代码,它正在创建 8 个控制器实例。测试一下
如果这对您有用,请接受它以供将来的用户复制。