$ stateProvider不与$ urlRouterProvider.otherwise一起路由

时间:2017-06-30 11:22:55

标签: angularjs

之前的工作是" /"是" / main",它能够将主和仪表板加载为$ urlRouterProvider.otherwise(" / main / dashboard");

但现在我已改为" /"而不是" / main",所以它不起作用,它只加载主页而不是仪表板。我已经更改了代码,因为我正在使用https://github.com/AzureAD/azure-activedirectory-library-for-js,并且它存在循环问题。

以下是代码示例(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
    }); 

 }])

3 个答案:

答案 0 :(得分:1)

将此默认childState用于main:

 $urlRouterProvider.when('/', '/dashboard');

你应该写&#39; /&#39;

 .state('main.dashboard', {
    url: "/dashboard",
    templateUrl: "/app/views/dashboard.html",
    requireADLogin: true,
    data: {
    pageTitle: 'Dashboard'
 }
})

答案 1 :(得分:1)

问题是您没有以正确的方式定义网址

请使用以下内容,url应以 /sdcard

开头

/

$urlRouterProvider.otherwise("/dasenter code herehboard");

试试吧

答案 2 :(得分:1)

以下代码解决了我的问题,如果有人在使用时遇到此问题  https://github.com/AzureAD/azure-activedirectory-library-for-js图书馆。

$urlRouterProvider.otherwise(function ($injector, $location) {
var $state = $injector.get("$state");
$state.go("main.dashboard");

});