$ urlRouterProvider,简单的路由

时间:2014-05-30 22:48:09

标签: angular-ui-router

无法理解$ 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。目前它将其视为状态并尝试查找相应的视图和控制器。

1 个答案:

答案 0 :(得分:0)

如果您需要将它们重定向到服务器,则需要省略URL的#/部分。

浏览器会忽略URL的#/部分,这是AngularJS能够允许您从localhost服务的页面的方式:3030 /#/处理请求。这基本上只是请求localhost:3030 /

如果您想在服务器上进行真正的重定向或导航到/ auth,请忽略该请求的状态 - 您希望浏览器直接在服务器上发出直接的HTTP请求。使用/ auth作为表单中的操作,或从控制器中发送到/ auth。在服务器上完成后,将用户重定向回Angular应用程序。

请记住,您需要为AngularJS应用程序提供一些机制来了解ehn在我们的应用程序中,我们让服务器设置一个带有JWT令牌的cookie,然后AngularJS应用程序使用它来检索用户信息。通过这种方式,AngularJS应用程序知道如何确定用户何时真正登录(相对于用户转到表示登录状态的URL)。