我想在创建控制器时加载ui-grid的最后一个状态。 我设了一个傻瓜。 http://plnkr.co/edit/cOhLUUABVStfoTH6QVZd?p=preview 在我的控制器中,我使用了restoreOnLoad函数,该函数在控制器的末尾立即调用。我得到一个TypeError:无法读取属性' saveState'未定义,因为在创建控制器时gridApi未定义。
restoreOnLoad = function(){
//retrieve stateinfo. For simplicity: inline object...
var stateInfo = {
"columns": [
{
"name": "",
"visible": true,
"width": 50,
"sort": {
"direction": "asc",
"priority": 0
},
"filters": [
]
},
{
"name": "M",
"visible": true,
"width": 50,
"sort": {
},
"filters": [
]
},
{
"name": "Company",
"visible": true,
"width": 200,
"sort": {
},
"filters": [
]
}
],
"scrollFocus": {
},
"selection": {
}
}
$scope.gridApi.saveState.restore($scope, stateInfo);
}
restoreOnLoad();
任何想法如何避免此错误?
答案 0 :(得分:0)
您的恢复呼叫在网格API注册之前正在运行,因此您只需要等待它发生。
您可以将restoreOnLoad()
来电转移到onRegisterApi
处理程序:
vm.gridOptions = {
onRegisterApi: function (gridApi) {
$scope.gridApi = gridApi;
restoreOnLoad();
}
}