Zak*_*Kus 2 javascript routes node.js angularjs locomotivejs
我正致力于将项目移植到基于角度的SPA.它目前是一个更"传统"的节点/ 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'
  });
}]);
这是我的角度路线提供者.没有"其他"指定.Serverside我有类似的东西:
this.match( '/someOtherPage', 'someOtherPage#showstuff');
如果我直接转到/ someOtherPage,它会从服务器端正确加载.如果我去/ something/page1,然后转到/ someOtherPage,它似乎没有联系服务器.
因为你使用的是角度html 5模式,角度不能区分你想要角度处理的路线和你不想要角度的路线.我认为你需要告诉angular忽略某些路线.看起来这就是你要找的东西:
https://docs.angularjs.org/guide/$location#html-link-rewriting
因此,将您的链接更改为非角度页面以使用target.
恩. <a href="/ext/link?a=b" target="_self">link</a>