Angular App中的外部链接

Nad*_*awi 3 angularjs angular-routing

我正在将Angular合并到现有rails应用程序的单个页面中.

使用以下内容,一切都与页面内的路由完美配合

app.config(function($routeProvider, $locationProvider) {
    $routeProvider
      .when('/services/:id', {
        templateUrl: "/javascripts/angular/templates/service_ui/service.html",
        controller: "ServiceCtrl"
     })

     $locationProvider.html5Mode(true);
});
Run Code Online (Sandbox Code Playgroud)

但是,我想维护与Angular无关的链接的正常功能.例如,我们在标题中有许多链接,这些链接链接到其他地方,现在被角度路由器捕获.

我在以下网址找到了一些可能的解决方案:https://groups.google.com/forum/?fromgroups#!topic/angular/basidvjscRk

但基本路径方法似乎不起作用..而target ="_ self"方法相当突兀.有没有更好的方法让angular忽略未在config函数中指定的路由?

我知道有一个.otherwise()方法,但这似乎是一个黑客.我错过了什么吗?

非常感谢!

Mic*_*ley 8

我们有一个相对"传统"的Web应用程序,因为大多数链接会触发整页重新加载; 很少有链接通过Angular的路由系统.在我们的模块定义之后,我们有以下内容:

app.run(function($location, $rootElement) {
  $rootElement.off('click');
});
Run Code Online (Sandbox Code Playgroud)

这样就可以阻止Angular用来操作URL 的内置拦截点击,例如当您点击链接时; 美中不足的是,你现在必须使用$location需要随时手动角,以尽自己的URL魔术(例如通过ngClick和操纵功能$location相应).

您可以考虑$rootElement.off结合使用特殊指令或配置函数,在您检测到的链接上重新安装此行为包含某个URL片段.