AngularJS $routeProvider,回退到默认链接导航

标签 angularjs

所以我的网站并不是 100% 都是“由 AngularJS 提供支持”,其中一些只是简单的静态 HTML,比如登陆页面或面向内容的内容,这是简单的 HTML,原因很明显。

我似乎可以获得正常导航的链接的唯一方法是这样的:

  $routeProvider
    .when('/plans', {templateUrl: '<%= asset_path('ng/views/start.html') %>'})
    # Catch all
    .otherwise({ redirectTo: (p,loc) -> window.location = loc })

感觉一切都应该更简单,就像我可以做的那样 .otherwise(false) 并且它会正常导航。 `.when('/something'/, false) 也是如此,但我在文档中没有看到任何表明这是可能的。

有谁知道更好的方法吗?

编辑1:

我发现的一个解决方案是在链接中使用target='_self'

另一个显然是设置应用程序的“基本 URL”,如 the docs 中所述。 。然后该基地之外的任何链接都应该正常导航。然而,这似乎并不像概述的那样工作,并且该示例也不符合文档的建议。

最佳答案

只是创建一个链接 external file

如果您使用的是 hashbang url(例如 #/plans),那么您应该已准备就绪,如果您使用的是 html5 历史 api ($locationProvider.html5(true)),那么您需要为您的应用程序命名空间(设置 base[href] ] 正确)并将内容放在该命名空间之外。

相关代码:

https://github.com/angular/angular.js/blob/4df45b20d460239a0f5001fb0dd59f95e2d0e80d/src/ng/location.js#L560

另一个解决方案是在该 a 元素上使用 target="_self" 。同样,只有在使用 html5(历史推送状态)时,这才应该是一个问题。

关于AngularJS $routeProvider,回退到默认链接导航,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14469946/

相关文章:

javascript - AngularJS:如何制作一个波动的进度条?

javascript - 在 AngularJS 中使用带有自定义指令的不同 Controller ?

angularjs - 如何在 ion-content 中渲染 svg

javascript - 在AngularJS中,如何确定组件是否提供了属性?

javascript - Angular ng-repeat 无法正确渲染数据

javascript - 添加所有行值并显示总数

angularjs - 从 angular.module config 获取数据到相应的 Controller

javascript - AngularJS 中多个 $http 请求的最佳实践是什么?

angularjs - 如何在angularjs中显示带有小数部分的数字

javascript - angularjs 1折叠具有不同内容的同一面板