UI路由器保持重定向到索引并且不加载状态/视图

时间:2016-02-20 08:28:14

标签: javascript angularjs angular-ui-router

我正在尝试使用UI路由器创建状态和加载视图,但它会将我重定向到索引。我无法弄清楚发生了什么。

我已在其他地方宣布app.js,我只是在这里发布router.js

代码

angular.module("MyApp").config(function($stateProvider) {
    $stateProvider
      .state('clinicdashboard', {
      url: '/clinicdashboards',
      templateUrl: 'clinicdashboard/views/index.html',
      controller: 'clinicDashboardCtrl',
      resolve: {
        loginRequired: loginRequired,

        patientlist: ['$http', function($http) {
          console.log("hello");
          return $http({
            method: 'GET',
            url: 'users/api/getPatientList'
          });
        }]
      }
    })
    .state('patientList', {
      url: '/patientlist/:id',
      templateUrl: 'clinicdashboard/views/detail.html',
      controller: 'clinicDashboardCtrlDetail',
      resolve: {
        loginRequired: loginRequired
      }
    })
    .state('clinicProfile', {
      url: '/clinicProfile',
      templateUrl: 'clinicdashboard/views/clinicProfile.html',
      // controller:  'clinicDashboardCtrlDetail',
      resolve: {
        loginRequired: loginRequired
      }
    })
    .state('clinicProfile.clinicProfileEdit', {
      url: '/clinicProfileEdit',
      templateUrl: 'clinicdashboard/views/clinicProfileEdit.html',
      // controller:  'clinicDashboardCtrlDetail',
      resolve: {
        loginRequired: loginRequired
      }
    })
    function loginRequired($q, $location, $auth) {
      var deferred = $q.defer();
      if ($auth.isAuthenticated()) {
        deferred.resolve();
      } else {
        $location.path('/login');
      }
      return deferred.promise;
    }
})

我已将所有文件放在正确的目录中 它在控制台或nodemon或任何地方都没有显示错误。

它只是将我重定向到localhost,即使我尝试去localhost/clinicProfile

1 个答案:

答案 0 :(得分:0)

你可以试试你的配置吗,

  yourapp.config(
        function( $stateProvider,
                $locationProvider) {
            $locationProvider.html5Mode(false);
})

默认情况下为false,因此如果您已指定并尝试,则可以删除此设置。 我只是怀疑这是因为在你的网址(localhost / clinicProfile)中,没有“#”。您是否尝试过localhost /#/ clinicProfile?

另外,请尝试启用HTML5Mode并在index.html的头部包含此行:或者尝试$ locationProvider.html5Mode({enabled:true,requireBase:false});所以$ locationProvider不依赖于基本标记。