【发布时间】:2014-10-02 12:27:30
【问题描述】:
我目前正在构建一个 Wordpress 网站,其中包含一些使用 AngularJS 的交互式位。一切正常,但是,当我转到与我的 Angular 路由设置相对应的页面时,网站上的其余链接将无法正常工作。
<div ng-app="myApp" class="ng-view">
<ng-view></ng-view>
</div>
...我的看法如下:
<div class="row" ng-controller="LinksCtrl" ng-init="init()">
... rest of view ...
</div>
...任何我的路由设置如下:
$locationProvider.html5Mode(true);
$routeProvider.when('/links/', {
templateUrl: APP_SETTINGS.baseUrl + '/assets/js/views/links.html',
controller: 'LinksCtrl'
});
所以,当我浏览网站时,一切正常,但是当我转到 /links/ 时,页面(以及所有与 Angular 应用程序相关的东西都可以正常工作并加载),但网站中的其余链接则加载失败。
首先,我不确定我必须在视图和路由中都定义控制器,其次,页面肯定应该在没有路由的情况下初始化吗?如果我禁用路由,则不会显示 Angular 视图。
我想我的问题应该是这是否真的可能。
非常感谢任何帮助。
干杯, 戴夫
【问题讨论】:
-
很可能,失败的链接是相对链接,而不是绝对。
some/page.html将是相对的,这意味着它将采用您当前的路径 APP_SETTINGS.baseUrl/links/some/page.html。绝对路径/some/page.html将始终从 base 开始,为您提供 APP_SETTINGS.baseUrl/some/page.html。尝试将不起作用的链接更改为绝对链接(如果是这种情况,请在开头添加正斜杠。 -
你不需要
class="ng-view"。您正在通过属性和路由调用 LinksCtrl;我想你可以删除ng-controller="LinksCtrl" -
谢谢大家。 @Simon H,删除 ng-controller="LinksCtrl" 仍然没有区别。我已经删除了任何方法。 cbayram,谢谢,但我使用的是 Wordpress,所以默认情况下链接是绝对的。不幸的是,没有什么可以改变的。
标签: javascript php wordpress angularjs