当我使用ui-sref
更改状态时,位置会更新,它的作用是显示正确的视图和控制器,并且可以从该控制器访问参数。
我的app.js看起来像这样:
/**
* @ngdoc overview
* @name adminPanelAngularApp
* @description
* # adminPanelAngularApp
*
* Main module of the application.
*/
angular
.module('adminPanelAngularApp', [
'ngCookies',
'ngResource',
'restangular',
'ngRoute',
'ngSanitize',
'ngTouch',
'nouislider',
'blockUI',
'ui.router',
'ui.bootstrap',
'environmentFilters',
'ui.select2',
'angular-ladda',
'angular.filter'
])
.run(['$rootScope', '$state', '$stateParams', function($rootScope, $state, $stateParams){
$rootScope.$state = $state;
$rootScope.$stateParams = $stateParams;
$rootScope.environment = {};
$rootScope.new_environments = []
$rootScope.new_nodes = [];
}]).config(function($stateProvider, $urlRouterProvider, RestangularProvider) {
RestangularProvider.setBaseUrl('http://localhost:3000');
// For any unmatched url, redirect to /404
$urlRouterProvider.otherwise('/404');
//
// Now set up the states
$stateProvider
.state('environment/show', {
url: "env/{appid}",
views: {
"top": {templateUrl: "views/environment/show.html", controller: 'EnvironmentCtrl'},
"bottom": {templateUrl: "views/environment/nodes.html"}
}
})
});
这是我使用的链接:
ui-sref="environment/show({appid: nv.env.appid})"
基本上这样一切都有效,除了它在位置栏中正确显示网址。
答案 0 :(得分:2)
我按照本期的建议修复了它
https://github.com/McNull/angular-block-ui/issues/40#issuecomment-64742130
$scope.$on('$locationChangeStart', function (event) {
if (srvInstance.state().blockCount > 0) {
//event.preventDefault();
}
});
阻止ui-router做这件事。
我也可以像这样禁用自动ui-blocking:
blockUIConfig.autoBlock = false;