【发布时间】:2015-10-15 03:02:55
【问题描述】:
我正在将 Angular 整合到现有 Rails 应用程序的单个页面中。
一切都与使用以下页面内的路由完美配合
app.config(function($routeProvider, $locationProvider) {
$routeProvider
.when('/services/:id', {
templateUrl: "/javascripts/angular/templates/service_ui/service.html",
controller: "ServiceCtrl"
})
$locationProvider.html5Mode(true);
});
但是,我想保持与 Angular 无关的链接的正常功能。例如,我们在标头中有许多链接,这些链接链接到其他地方,现在正被角度路由器捕获。
我在以下位置找到了一些潜在的解决方案:https://groups.google.com/forum/?fromgroups#!topic/angular/basidvjscRk
但是基本路径方法似乎不起作用..并且 target="_self" 方法相当突兀。有没有更好的方法让角度忽略配置函数中未指定的路由?
我知道有一个 .otherwise() 方法,但这似乎又是一个 hack。我错过了什么吗?
非常感谢!
【问题讨论】:
-
我认为 Google Groups 的答案非常可靠。
target="_self"方法似乎绝对符合 Angular 的精神,因为它是解决问题的声明式方法。 -
target="_self" 在将 Angular 与 turbolinks 结合使用(对于同站点页面)时,似乎会导致整个页面重新加载。