我正在将项目移植到基于角度的 SPA。它目前是一个更“传统”的 node/locomotivejs 应用程序,它从服务器端提供模板(从来不知道这个的正确术语)。
项目太大而无法一次全部迁移,因此我们一次将其转换为有角度的页面。
我的问题:如果您加载应用程序的角度部分,一切正常。您可以正确地进入角度路线。但是,如果您随后转到非角度路线(应该在服务器端处理),则不会加载任何内容(ng-view 变为空白,而不是加载一个全新的模板)。如果您首先转到服务器端路由或点击刷新,则页面会正确加载。
我的猜测是 angular 正在尝试处理这些路由,我不确定如何让它让服务器接管。
app.config(['$routeProvider', '$locationProvider', function ($routeProvider, $locationProvider) {
$locationProvider.html5Mode(true);
$routeProvider.when('/something/page1', {
templateUrl: '/page1.html',
controller: 'page1Ctrl'
});
$routeProvider.when('/something/page1/subpage', {
templateUrl: '/subpage.html',
controller: 'subpageCtrl'
});
}]);
这是我的角度路线提供者。没有指定“否则”。服务器端我有类似的东西:
this.match( '/someOtherPage', 'someOtherPage#showstuff');
如果我直接转到 /someOtherPage,它会从服务器端正确加载。如果我转到/something/page1,然后转到/someOtherPage,它似乎没有联系服务器。