[英]UI Grid refresh in Angular
從另一個控制器打開一個模式彈出窗口。 在關閉模式彈出窗口時,我將做一些事情,並將數據傳輸到另一個控制器,該控制器填充UI網格並綁定到$scope.searchResultsGridOptions
。
所以在我的ABCCtrl.js
文件中:
在關閉模式時,我會:
$("#iConfirmationModal").on('hidden.bs.modal', function () {
$state.go('transaction.search.results', {});
//I close all the modals
$uibModalStack.dismissAll();
//I get the stored search criteria
var searchResultsParam = TransactionDataServices.getSavedSearchParams();
//Using them I hit the web service again and get the data to reload the UI Grid
TransactionServices.getTransactionAdvSearchResults(searchResultsParam).then(function (result) {
//I got the result
console.log(result);
/Now I want to reload the grid with this data , but the grid scope object which binds to this , is in separate controller
searchResultsGridOptions.data = result;
});
});
在DEFCtrl.js中
我有
getSearchResultsGridLayout: function (gridOptions, uiGridConstants, datas) {
gridOptions.multiSelect = false;
// gridOptions.data.length = 0;
// gridOptions.data = '';
gridOptions.data = datas;
console.log("Grid Data ");
console.log(datas);
console.log(gridOptions.data);
angular.element(document.getElementsByClassName('grid')[0]).css('height', '0px');
// console.log(datas.length);
return gridOptions;
}
但是,如何僅在模式關閉時才更改數據?
其余時間是否應該不刷新Grid?
要么 ,
關閉模態時,有什么辦法,而不是簡單地使用$state.for()
返回狀態並查看先前未刷新的數據,而是可以看到刷新的數據?
嗨,我認為您不需要在“ ABCCtrl”控制器中調用“ TransactionServices.getTransactionAdvSearchResults()”,但是您必須在“ DEFCtrl”控制器中調用它。
您需要找到一種方法,將“ ABCCtrl”中提取的“ searchResultsParam”傳遞給“ DEFCtrl”。
您可以使用ui-router狀態參數 。 您可以在“ transaction.search.results”狀態下指定參數,如下所示:
.state('transaction.search.results', {
...
params: {
searchResultsParam: null
}
...
})
並在“ ABCCtrl”中將其傳遞給狀態:
$("#iConfirmationModal").on('hidden.bs.modal', function () {
//I close all the modals
$uibModalStack.dismissAll();
//I get the stored search criteria
var searchResultsParam = TransactionDataServices.getSavedSearchParams();
$state.go('transaction.search.results', {searchResultsParam: searchResultsParam});
然后,在“ DEFCtrl”中可以讀取它並調用“ TransactionServices.getTransactionAdvSearchResults()”方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.