【问题标题】:Angular JS overriding A links outside of ng-appAngular JS 覆盖 ng-app 之外的 A 链接
【发布时间】:2016-02-04 16:59:07
【问题描述】:

我正在构建我的第一个单页应用程序。它只在页面的内容中,就像一个小部件。 (基本上是分页)。

我在标题中有与 Angular 应用程序无关的链接,链接的构造如下:

<a href="#">Basket</a>

我并不能真正控制上面链接的呈现 HTML。正如我所读到的那样,添加 target="_self" 将使 Angular 不使用它的路由服务。

我可以确认我没有使用$routeProvider 或任何路由。因为它位于一页上并使用一个模板文件。

不过,我正在使用以下 Angular 服务:

$scope, $log, $location, $filter, $http, $anchorScroll

我还使用$locationProvider,将html5Mode设置为true,将requireBase设置为false

我使用的是 Angular 1.2.28 版

每当我点击这些类型的链接时,角度似乎都会接管并且什么都不做。如果我取消href="#",则单击事件似乎起作用并且角度不会触及它。

任何帮助将不胜感激;

【问题讨论】:

  • ng-app 设置在哪里?在身体上?
  • 如果不涉及路由,点击这些链接时实际会发生什么......即它如何影响角度?它们还用来做什么?换句话说定义“角度接管”
  • ng-app 是在内容中设置的,而不是在 body 标记上...像这样:&lt;div ng-app="listItems" ng-controller="MainController" ng-cloak&gt; &lt;div ng-include="'../../js/views/news-template.html'"&gt;&lt;/div&gt; &lt;/div&gt; 当这些类型的链接被点击时,它们只会闪烁/刷新 ng-repeat 数组的项目。这些链接用于在网站周围导航、下拉菜单等

标签: javascript angularjs hyperlink location


【解决方案1】:

我已经设法找出错误,问题似乎只发生在 Angular 版本 1.2.28 和 1.2.27 中。

我使用了较新的版本,一切正常,但是由于 IE8 的兼容性,我需要保持在 1.2 的版本中,所以我恢复到 1.2.26 版本,直到我的用户升级到 IE 9+ 的较新版本。

我最终通过将所有代码剥离到一个基本的空白画布应用程序中解决了这个问题。问题仍然存在。希望这对遇到此问题的其他人有用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-31
    • 1970-01-01
    相关资源
    最近更新 更多