2013-11-15 3 views
2

Я хочу перенаправить с экспресс-функции на частичную частичную нагрузку с контроллером этого вида.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

В зависимости от того, как вы использовали нг-представление в вашем приложении, вы можете использовать узел для визуализации и отправки партиалы условно.

Угловое -> маршрутизации

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