AngularJS ng-href不会链接

cod*_*shi 8 angularjs angularjs-ng-href

我已经在这里检查了文档和ng-href不工作线程,但我很难过.

ng-href是否需要完整路径?我目前看起来像<a ng-title="{{title.text}}" ng-id="{{id.num}}" ng-href="/page.php#param:{{id.num}}"><span>go here</span></a>,但是当我点击它时,它正确地改变了浏览器地址栏中的URL(这是一个合法的URL;我可以在地址栏中点击"输入",它将"去那里") ,它实际上并没有转到该页面.

出了什么问题?我是否需要将其与ng-click某种结合起来?如果是这样,为什么?

更新:链接将转到调用它的同一页面,但是使用不同的参数来显示不同的数据记录.我认为这可能与它有关...

Ale*_*rra 12

最简单的方法是添加target ="_ self",在您的情况下,这是解决方案:

<a ng-title="{{title.text}}" ng-id="{{id.num}}"
 ng-href="/page.php#param:{{id.num}}" target="_self">
 <span>go here</span>
</a>
Run Code Online (Sandbox Code Playgroud)

没有ng-click,也不需要AngularJS功能.

  • 这个答案揭示了一些亮点:http://stackoverflow.com/a/28802951/284704。显然,只要 $location 服务以这种方式使用,Angular 就会始终将 href 视为 ngApp 内的 URL/位置重写器。您必须使用 target="_self" 进行覆盖才能获得正常的链接行为。 (2认同)

cod*_*shi 2

以下是我最终解决这个问题的方法:

模板:

<a ng-title="{{title.text}}" ng-id="{{id.num}}" ng-click="go_to_item(id.num)">
    <span>{{title.text}}</span>
</a>
Run Code Online (Sandbox Code Playgroud)

JavaScript:

    $scope.go_to_item = function(display) {
        window.location = '/page.php#id:' + display;
        location.reload();
    };
Run Code Online (Sandbox Code Playgroud)

这在我们的应用程序中正常工作。不过,为什么 Angular 特定的$location并且$window 不能在那里工作对我来说是一个谜。我先尝试了这些,但他们没有这样做,所以如果有人能解释原因,我会给你“接受答案”这个问题!;-)