我正在使用弹簧靴为我的后端和角度为前面。 在我的背后,我有一个宁静的服务,当用户调用一个已定义的路径时,它会获取一个排序数据,然后将结果发送到前面。
在角度,我在这个定义的路线上做了一个服务,我正在解析结果,将它们渲染到视图中。一切正常,除非我想在用户点击启动我的批次的按钮后重新加载页面。在这个按钮上,我已经有一个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: {
'content@': {
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...
答案 0 :(得分: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
答案 1 :(得分:1)
如果您使用$ routeProvider,则在ng-click功能
中添加$route.reload()
或
如果您使用$ stateProvider,则在ng-click功能
中添加$state.reload('state.name')
注意:基本上重新加载整个页面不是最佳做法。所以试着 避免重新加载