【问题标题】:AngularJS Routing in a Wordpress siteWordpress 站点中的 AngularJS 路由
【发布时间】: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


【解决方案1】:

这里找到的解决方案对我有用。 https://stackoverflow.com/a/17407179/102086.

基本上,您只需要添加一个“_self”的目标。置顶您想要忽略的链接。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-18
    • 1970-01-01
    • 1970-01-01
    • 2018-04-21
    • 1970-01-01
    • 2017-01-05
    • 2015-04-25
    • 2013-10-29
    相关资源
    最近更新 更多