2017-04-09 67 views
0

我對後端使用彈簧引導,前角使用角度。 在我的背後,我有一個寧靜的服務,當用戶調用一個定義的路線時,獲取一個排序數據,然後將結果發送到前面。角度js:重新加載頁面後,ng-click

在angular中,我在這個定義的路由上做了一個服務,我解析了結果以將它們呈現給視圖。一切工作正常,除了我想在用戶點擊開始批處理的按鈕後重新加載頁面。在這個按鈕上,我已經有一個ng-click,它工作並開始我的批處理。但是我不知道如何在點擊這個按鈕後重新加載頁面。 也許我不應該在ng-click中使用另一個函數?

我的服務:

(function() { 
'use strict'; 
angular 
    .module('pfja') 
    .factory('Publication', Publication); 

Publication.$inject = ['$http']; 

function Publication ($http) { 
    var urlOpeFlexFactureValide = 'api/invoice/valid-invoice'; 

    var getAllValidInvoice= function(){ 
     return $http.get(urlValidInvoice).then(
      function(result){ 
       return result.data; 
      } 
     ); 
    }; 

    return { 
     getAllValidInvoice: getAllValidInvoice 
    }; 
} 
})(); 

我state.js:

  parent: 'app', 
     url: '/publication?page&sort&search', 
     data: { 
      authorities: ['ROLE_USER'], 
      pageTitle: 'home' 
     }, 
     views: { 
      '[email protected]': { 
       templateUrl: 'app/batch/publication/publication.html', 
       controller: 'PublicationController', 
       controllerAs: 'vm' 
      } 
     },   
     params: { 
      page: { 
       value: '1', 
       squash: true 
      }, 
      sort: { 
       value: 'id,asc', 
       squash: true 
      }, 
      search: null 
     }, 
      resolve: { 
      .... 
      validInvoiceList: ['Publication', '$q', function(Publication, $q){ 
       return Publication.getAllValidinvoice(); 
      }] 

我的控制器:

(function() { 
'use strict'; 

angular 
    .module('pfja') 
    .controller('PublicationController', PublicationController); 

PublicationController.$inject = ['$scope',... 'Publication', 'validInvoiceList']; 

function PublicationController ($scope, ..., Publication, validInvoiceList) { 
    var vm = this; 
    ... 

    vm.validInvoiceList = validInvoiceList; 

    function runPublicationBatch(){ 

     var invoice = new Array(); 
      if (vm.validInvoiceList) { 
      vm.validInvoiceList.forEach(function(inv) { 
       if (inv.selected) { 
        invoice.push(inv); 
       } 
      }); 
     } 
     ManualBatch.runPublicationBatch(invoice);  

    }; 

我的html:

 <button ng-click="vm.runPublicationBatch()" class="btn btn-primary btn-md"> 
       <span class="glyphicon glyphicon-play-circle"></span> 

        Start 
       </span> 
      </button> 

//my ng-repeat with vm.validInvoice... 

回答

2

你首先需要注入服務$window比你可以使用

$ window.location.reload();


 function runPublicationBatch(){ 
     $window.location.reload(); 
      var invoice = new Array(); 
       if (vm.validInvoiceList) { 
       vm.validInvoiceList.forEach(function(inv) { 
        if (inv.selected) { 
         invoice.push(inv); 
        } 
       }); 
      } 
      ManualBatch.runPublicationBatch(invoice);  

     }; 

或者當你要重新加載頁面。


你可以$route重裝,$state服務here

+0

不錯,謝謝! – user2203384

1

如果你正在使用$ routeProvider再加入$route.reload()納克單擊功能

如果您正在使用$ stateProvider內然後在ng-click函數內添加$state.reload('state.name')

注意:基本上重新加載整個頁面不是最佳實踐。所以試着 避免重裝

+0

重新加載是暫時的,最後我會刷新我的表格。感謝您的建議 – user2203384