Javascript 角度用户界面路由器初始化
我正在尝试在我的应用程序中使用Angular UI路由器。当我初始化用户界面路由器而不是说,Javascript 角度用户界面路由器初始化,javascript,angularjs,angular-ui-router,Javascript,Angularjs,Angular Ui Router,我正在尝试在我的应用程序中使用Angular UI路由器。当我初始化用户界面路由器而不是说,localhost:8000/#/时,我得到了localhost:8000/#!#%2F 我的app.js如下: angular .module('quiz',['ngMaterial', 'ngMessages', 'ngCookies', 'ngResource',
localhost:8000/#/
时,我得到了localhost:8000/#!#%2F
我的app.js如下:
angular
.module('quiz',['ngMaterial',
'ngMessages',
'ngCookies',
'ngResource',
'quiz.routes'
]).config(function($resourceProvider) {
$resourceProvider.defaults.stripTrailingSlashes = false;
});
angular
.module('quiz.routes',['ui.router']);
在我的quick.routes.js中,我有:
(function () {
angular
.module('quiz.routes')
.config(config);
function config($urlRouterProvider,$stateProvider){
$stateProvider
.state('register',{
url: '',
templateUrl: '/static/templates/register.html'
});
}
})();
所以我得到的不是尾随斜杠!#%2F在我的URL中。这是为什么?假设您使用的是Angular 1.6版,那么这可能是因为对默认hashPrefix进行了更改,现在将其设置为
代码>。要修复此问题,您需要将$locationProvider
注入模块的config
块,并将默认hashPrefix重置回空字符串
$locationProvider.hashPrefix('')
这是,尽管事实证明它是经过设计和故意改变的 你把quize.routes注入你的主模块了吗?是的,我会编辑代码,我忘了把它添加到这里了。好吧,我不确定是否可以写一个关于这个的答案。但我认为您需要设置一个url,在您的例子中是“/”。。。如果你正在定义一个抽象状态,你将只有一个空的url。我已经发布了可能的原因,但是这可能不是全部,你可能还需要调整你的路由和链接。哦,太棒了。我现在的连接速度很慢,所以在我发表上述评论之前,我没有看到你已经接受了答案。很高兴它成功了。