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

UI router keeps redirecting to index and doesnt load the states/views

本文关键字:加载 状态 视图 索引 路由器 重定向 UI      更新时间:2023-09-26

我正在尝试使用 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;
    }
})

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

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

你能在你的配置中试试吗,

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

默认情况下,它为 false,因此如果您已指定并尝试,则可以删除此设置。我只是怀疑这一点,因为在您的网址(本地主机/诊所配置文件)中,没有"#"。你也试过localhost/#/clinicProfile吗?

另外,请尝试启用HTML5Mode并将此行包含在index.html:的标题中,或者尝试$locationProvider.html5Mode({启用:true,requireBase:false });因此$locationProvider不会依赖于基本标签。