我在我的应用中使用ui-roter。当我发送hardRelad
参数时,我希望我的页面重新加载。
这就是我去那个州的方式。
$state.go("widget", {"widgetUrl" : url, "hardReload": true});
这是我的控制器,我在传递参数时重新加载。
这适用于chrome,但不适用于safari和chrome。它重新加载归属状态localhost:8080/#
(function(){
'use strict'
angular
.module('myApp')
.controller('WidgetController', controllerFunction)
controllerFunction.$inject = ['$window', '$stateParams', '$scope'];
function controllerFunction($window, $stateParams, $scope) {
var vm = this;
$scope.widgetUrl = $stateParams.widgetUrl;
if($stateParams.hardReload) {
$window.location.reload();
}
}
})();
这是我的路由定义
$stateProvider
.state('home', {
url: '/',
templateUrl: 'views/main.html',
controller: 'MainCtrl as vm'
})
.state('widget', {
url: '/widget/{widgetUrl}',
params: {
hardReload: false
},
templateUrl: 'views/widget.html',
controller: 'WidgetController as vm'
});
答案 0 :(得分:0)
我用$locationChangeSuccess
这个有效。谢谢你的帮助
$rootScope.$on('$locationChangeSuccess',
function (event) {
if(event.currentScope.hardReload) {
$window.location.reload();
}
});