Javascript UI路由器不断重定向到索引,不加载状态/视图
我试图使用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
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一样工作的基本标签。。如果你能解释一下它也做了什么?我是一个业余爱好者,我正在努力增加我的知识