nodejs expressjs angularjs routing

时间:2013-11-15 21:50:22

标签: javascript angularjs node.js express url-routing

我想从快速函数重定向到angularjs partial以使用该视图的控制器加载。

app.js - > nodejs

function(req, res, next) {
    console.log(req.session);
    if(req.session.user/* && req.session.user.role === role*/)
      next();
    else
      res.redirect("/#/login");
  }

app.js - > angularjs

app.config(function($routeProvider){
$routeProvider
.when("/create", {
    templateUrl : "/users/usersCreate",
    controller : "users"
})
.when("/delete", {
    templateUrl : "/users/usersDelete",
    controller : "users"
})
.when("/login", {
    templateUrl : "/sessions/sessionsCreate",
    controller : "sessionsCtr"
})

.otherwise({ reditrectTo : "/" });

})

它不起作用:(帮助

2 个答案:

答案 0 :(得分:2)

根据您在应用中使用ng-view的方式,您可以使用节点有条件地渲染和发送部分内容。

Angular - >路由

 app.config(function($routeProvider){
    $routeProvider
    .when("/create", {
        templateUrl : "/api/v1/partial/partialName",
        controller : "CtrlOne"
    })
    .when("/delete", {
        templateUrl : "/api/v1/partial/partialTwoName",
        controller : "CtrlTwo"
    })
    .otherwise({ reditrectTo : "/" });

节点

app.get('/api/v1/partials/:partial', function (req, res){
   var partial = req.params.partial
   if(req.session.auth){
      res.render('views/partials/'+partial+'.jade');
   } else {
      res.render('views/partials/login.jade');
   }
});

答案 1 :(得分:1)

请求部分时,无法重定向Angular.js。 Angular.js正在发出一个AJAX调用,它不会像浏览器那样遵循重定向响应。

这个其他答案提供了如何进行的指导:

https://stackoverflow.com/a/15261558/446681