/question/ask
app.get('/question/ask', function (req, res){
console.log('index.js');
console.log('came to question/:id');
res.render('app');
});
相应的angularjs路由是: -
when('/ask', {
templateUrl: 'partials/askQuestion',
controller: 'xController'
}).
应该是: -
when('/question/ask', {
templateUrl: 'partials/askQuestion',
controller: 'xController'
}).
我正在以$locationProvider.html5Mode(true);
模式工作。
无论如何,我可以让后来的angularjs路由工作。我正在使用angularjs 1.1.5版本。
编辑: -
app.get('/*', function (req, res){
console.log('index.js');
console.log('came to question/:id');
res.render('app');
});
有同样的问题,角度路线只会路由/ask
的最后/question/ask
。
对我来说,问题是我只能做以下其中一项: -
www.example.com/question/:qId
www.example.com/discussion/:aId
因为该应用程序只会包含1个when('/:id', {
,因为它不包含之前的/question/
或/discussion/
答案 0 :(得分:0)
好吧,如果你在Express和Angular上有相同的路线,如果用户直接在浏览器中输入网址,你会点击Express路线,但如果用户在应用程序中导航,那么他将点击Angular路线
这是你想要的吗?
有些做的是在服务器上为REST API设置一组不同的路由,并捕获为应用程序提供服务的所有路由,无论用户输入什么类型的URL,将用户带到主页时服务器路由被击中。在应用程序中,导航由Angular路线处理。问题是你没有深层链接。
其他一些应用程序在服务器和客户端上都有相同的路由,这样无论如何都可以提供一些内容。
有些人会编写涉及路由重写的内容,以确保您获得应用程序引导代码和所需的URL,从而允许深层链接。
干杯
答案 1 :(得分:0)
使用角度版1.2.0-rc.3可以解决问题。
变化:
var myApp = angular.module('myApp', []);
到
var myApp = angular.module('myApp', ['ngRoute']);
并包括: -
script(type='text/javascript', src='js/angular-route.js')