AngularJS和ExpressJS路由冲突

时间:2013-07-05 16:50:44

标签: angularjs express

我正在尝试将数组的索引值传递给路由,因此我可以使用id将特定对象加载到详细视图中。

注入索引并更改路径的控制器

location.path('/detail/'+index);

处理细节路由的$ routeProvider

.when('/detail/:index', { 
    controller: DetailViewCtrl, templateUrl: 'partials/detail' 
});

处理部分加载的Express脚本

app.get('/partials/:partial', function(req, res) {
    return res.render('partials/' + req.params['partial']);
};

如果我传入5的索引,那么我希望URL看起来像“localhost:3000 / detail / 5”,我确实在我的浏览器中得到了这个,但服务器返回404错误,其中试图查看对于一些奇怪的URL“localhost:3000 / detail / partials / detail。”我不知道在部分之前添加的“细节”来自何处。

了解幕后发生的事情以及如何解决问题会很高兴。我如何在路线中传递自定义变量而不是表达怪异?

1 个答案:

答案 0 :(得分:2)

templateUrl添加到/

前面
.when('/detail/:index', { 
   controller: DetailViewCtrl, 
   templateUrl: '/partials/detail' 
});

或在base元素下插入head标记,如下所示:

<base href="/" />