5

因此,我的网站并非 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”,如docs 中所述。然后,该基础之外的任何链接都应正常导航。但是,这似乎不像概述的那样工作,并且该示例也不符合文档的建议。

4

1 回答 1

3

只是创建一个指向它的外部文件的链接

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

相关代码:

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

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

于 2013-01-22T23:43:22.453 回答