2013-11-15 78 views
2

我想從一個express函數重定向到一個angularjs部分來加載該視圖的控制器。nodejs expressjs angularjs routing

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 : "https://stackoverflow.com/users/usersCreate", 
    controller : "users" 
}) 
.when("/delete", { 
    templateUrl : "https://stackoverflow.com/users/usersDelete", 
    controller : "users" 
}) 
.when("/login", { 
    templateUrl : "/sessions/sessionsCreate", 
    controller : "sessionsCtr" 
}) 

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

})

它不工作:(幫助

回答

1

你不能當請求一個部分時重定向Angular.js Angular.js發出一個AJAX調用,並且不會在sa中發出重定向響應我的瀏覽器方式。

這等回答瞭如何去做指導:

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

2

取決於你是如何使用你的應用程序中的NG-視圖,你可以使用節點渲染和有條件地發出諧音。

角 - >路由

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'); 
    } 
});