$stateProvider 不会使用 $urlRouterProvider.otherwise 路由
$stateProvider won't route with $urlRouterProvider.otherwise
以前当“/”是“/main”时它是工作的,它能够加载 main 和 dashboard 为 $urlRouterProvider.otherwise("/main/dashboard");
但现在我已经改为“/”而不是“/main”,它不起作用,它只加载主而不是仪表板。我已经更改了代码,因为我正在使用 Active Directory Authentication Library,它有一个循环问题。
以下是代码示例(config.js)
myapp.config(['$stateProvider', '$urlRouterProvider', '$locationProvider', '$compileProvider', '$httpProvider', 'adalAuthenticationServiceProvider',
function ($stateProvider, $urlRouterProvider, $locationProvider, $compileProvider, $httpProvider, adalProvider) {
$compileProvider.debugInfoEnabled(true);
$locationProvider.html5Mode(true).hashPrefix('!');
$urlRouterProvider.otherwise("/dashboard");
$stateProvider
// Main content
.state('main', {
abstract: false,
url: "/",
templateUrl: "/app/views/common/content.html"
})
.state('main.dashboard', {
url: "dashboard",
templateUrl: "/app/views/dashboard.html",
requireADLogin: true,
data: {
pageTitle: 'Dashboard'
}
})
.state('main.usermanagement', {
url: "/usermanagement",
template: "<div ui-view></div>",
requireADLogin: true
});
}])
关于如何解决这个问题有什么想法吗?
对主要部分使用此默认子状态:
$urlRouterProvider.when('/', '/dashboard');
你应该写 url 以 '/' 开头
.state('main.dashboard', {
url: "/dashboard",
templateUrl: "/app/views/dashboard.html",
requireADLogin: true,
data: {
pageTitle: 'Dashboard'
}
})
问题是你没有以正确的方式定义 URL
请在下方使用,url 应以 /
开头
$urlRouterProvider.otherwise("/dasenter code herehboard");
$stateProvider
.state('main', {
abstract: false,
url: "/",
templateUrl: "/app/views/common/content.html"
})
.state('main.dashboard', {
url: "/dashboard", // you missed slash `/` here
templateUrl: "/app/views/dashboard.html",
requireADLogin: true,
data: {
pageTitle: 'Dashboard'
}
})
试一试
如果有人在使用时遇到这个问题,下面的代码已经解决了我的问题
Active Directory Authentication Library:
$urlRouterProvider.otherwise(function ($injector, $location) {
var $state = $injector.get("$state");
$state.go("main.dashboard");
});
以前当“/”是“/main”时它是工作的,它能够加载 main 和 dashboard 为 $urlRouterProvider.otherwise("/main/dashboard");
但现在我已经改为“/”而不是“/main”,它不起作用,它只加载主而不是仪表板。我已经更改了代码,因为我正在使用 Active Directory Authentication Library,它有一个循环问题。
以下是代码示例(config.js)
myapp.config(['$stateProvider', '$urlRouterProvider', '$locationProvider', '$compileProvider', '$httpProvider', 'adalAuthenticationServiceProvider',
function ($stateProvider, $urlRouterProvider, $locationProvider, $compileProvider, $httpProvider, adalProvider) {
$compileProvider.debugInfoEnabled(true);
$locationProvider.html5Mode(true).hashPrefix('!');
$urlRouterProvider.otherwise("/dashboard");
$stateProvider
// Main content
.state('main', {
abstract: false,
url: "/",
templateUrl: "/app/views/common/content.html"
})
.state('main.dashboard', {
url: "dashboard",
templateUrl: "/app/views/dashboard.html",
requireADLogin: true,
data: {
pageTitle: 'Dashboard'
}
})
.state('main.usermanagement', {
url: "/usermanagement",
template: "<div ui-view></div>",
requireADLogin: true
});
}])
关于如何解决这个问题有什么想法吗?
对主要部分使用此默认子状态:
$urlRouterProvider.when('/', '/dashboard');
你应该写 url 以 '/' 开头
.state('main.dashboard', {
url: "/dashboard",
templateUrl: "/app/views/dashboard.html",
requireADLogin: true,
data: {
pageTitle: 'Dashboard'
}
})
问题是你没有以正确的方式定义 URL
请在下方使用,url 应以 /
$urlRouterProvider.otherwise("/dasenter code herehboard");
$stateProvider
.state('main', {
abstract: false,
url: "/",
templateUrl: "/app/views/common/content.html"
})
.state('main.dashboard', {
url: "/dashboard", // you missed slash `/` here
templateUrl: "/app/views/dashboard.html",
requireADLogin: true,
data: {
pageTitle: 'Dashboard'
}
})
试一试
如果有人在使用时遇到这个问题,下面的代码已经解决了我的问题 Active Directory Authentication Library:
$urlRouterProvider.otherwise(function ($injector, $location) {
var $state = $injector.get("$state");
$state.go("main.dashboard");
});