我已经检查过这里的文档和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
结合起来吗?如果是这样,为什么?
更新:链接将转到调用它的同一页面,但是使用不同的参数来显示不同的数据记录。我认为这可能与它有关......
答案 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-href
内ng-controller
。