簡體   English   中英

Angular中的UI網格刷新

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM