Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript UI路由器不断重定向到索引,不加载状态/视图_Javascript_Angularjs_Angular Ui Router - Fatal编程技术网

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

Javascript UI路由器不断重定向到索引,不加载状态/视图,javascript,angularjs,angular-ui-router,Javascript,Angularjs,Angular Ui Router,我试图使用UI路由器创建状态和加载视图,但它一直将我重定向到索引。我不知道发生了什么事 我已经在其他地方声明了app.js,我只是在这里发布router.js 代码 angular.module("MyApp").config(function($stateProvider) { $stateProvider .state('clinicdashboard', { url: '/clinicdashboards', templateUrl: 'clin

我试图使用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

,您能在配置中尝试一下吗

  yourapp.config(
        function( $stateProvider,
                $locationProvider) {
            $locationProvider.html5Mode(false);
})
默认情况下,该值为false,因此如果已指定并重试,则可以删除此设置。 我只是怀疑这一点,因为在您的url(localhost/clinicProfile)中没有“#”。您也尝试过localhost/#/clinicProfile吗


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

您是否在$stateProvider中配置了/login路由?不存在的路由可能是造成这种情况的原因。是的,我已经配置了。@Pankaj,是的,是真的,但是Sarthak在他的URL中没有使用“#”,所以我怀疑,他可能正在使用HTML5模式启用。正确。也许是这样。。但问题是OP在其配置中没有
HTML5模式
启用代码。是的,我正在使用HTML5模式。。事实上,为了论证,它禁用了它,将#放在url中,然后尝试路由,结果成功了。我不知道为什么会这样。我的意思是,它是否也应该在HTML5模式下进行路由@PankajParkar@Sarthak,感谢您快速地检查它,您可以尝试启用HTML5模式并将这一行包含在index.html:的标题中,或者尝试$locationProvider.html5模式({enabled:true,requireBase:false});所以$locationProvider将不会依赖于像魅力@Ganesh一样工作的基本标签。。如果你能解释一下它也做了什么?我是一个业余爱好者,我正在努力增加我的知识