【问题标题】:nodejs expressjs angularjs routingnodejs expressjs angularjs 路由
【发布时间】:2013-11-15 21:50:21
【问题描述】:

我想从一个 express 函数重定向到一个 angularjs 部分以加载该视图的控制器。

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 : "/" });

})

它不工作:(帮助

【问题讨论】:

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


    【解决方案1】:

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

    角度 -> 路由

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

    【讨论】:

      【解决方案2】:

      在请求部分时,您不能重定向 Angular.js。 Angular.js 发出一个 AJAX 调用,它不会像浏览器那样跟随重定向响应。

      这个其他答案提供了如何去做的指导:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-07-17
        • 1970-01-01
        • 2013-11-20
        • 2014-10-03
        • 1970-01-01
        • 2018-07-29
        相关资源
        最近更新 更多