无法理解$ urlRouterPovider ......
基本上每当我去一个链接时它应该加载相关的视图和控制器。这样才行。 $ urlRouterProvider.when(" /"" /家&#34) $ urlRouterProvider.otherwise(" /错误&#34)
$stateProvider.state('views', {
url: "/:view",
templateUrl: function(stateParams, formResolver) {
return "views/" + stateParams.view + "/" + stateParams.view + "-view.html";
},
controllerProvider: function($stateParams) {
return "" + $stateParams.view + "Ctrl";
}
});
因此,每当用户转到http://localhost:3030/#/foo
时,它都会加载" views / foo / foo.html"控制器为" fooCtrl",默认情况下转到home
,其他所有情况errror
。
很酷。我需要的是,每当用户转到http://localhost:3030/#/auth
时,它都会重定向到" / auth"在服务器上,跳过stateProvider。目前它将其视为状态并尝试查找相应的视图和控制器。
答案 0 :(得分:0)
如果您需要将它们重定向到服务器,则需要省略URL的#/部分。
浏览器会忽略URL的#/部分,这是AngularJS能够允许您从localhost服务的页面的方式:3030 /#/处理请求。这基本上只是请求localhost:3030 /
如果您想在服务器上进行真正的重定向或导航到/ auth,请忽略该请求的状态 - 您希望浏览器直接在服务器上发出直接的HTTP请求。使用/ auth作为表单中的操作,或从控制器中发送到/ auth。在服务器上完成后,将用户重定向回Angular应用程序。
请记住,您需要为AngularJS应用程序提供一些机制来了解ehn在我们的应用程序中,我们让服务器设置一个带有JWT令牌的cookie,然后AngularJS应用程序使用它来检索用户信息。通过这种方式,AngularJS应用程序知道如何确定用户何时真正登录(相对于用户转到表示登录状态的URL)。