AngularJS ng-href不会链接

时间:2014-08-29 18:22:09

标签: angularjs angularjs-ng-href

我已经检查过这里的文档和ng-href not working帖子,但我很难过。

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结合起来吗?如果是这样,为什么?

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

4 个答案:

答案 0 :(得分: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>

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

答案 1 :(得分:2)

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

模板:

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

使用Javascript:

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

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

答案 2 :(得分:0)

我尝试了你的代码,它对我有用:

<script>
$scope.title = {text: "test"};
$scope.id = {num: 123};
</script>

<a ng-title="{{title.text}}" ng-id="{{id.num}}" ng-href="/page.php#param:{{id.num}}"><span>go here</span></a>

变成这样:

<a ng-title="test" ng-id="123" ng-href="/page.php#param:123" href="/page.php#param:123"><span>go here</span></a>

答案 3 :(得分:-4)

我之前遇到过这个问题。由于某种原因,我不允许在ng-hrefng-controller