href使用 AngularJS
中的参数值覆盖ng-clickHTML:
<a href="/my-subscription" ng-click="MySubscription('<%= user._id %>')">My Subscription</a>
角度控制器代码:
$scope.MySubscription = function(id){
console.log(id);
};
当我重定向我的订阅页面时,我需要获取值但是href会覆盖它... 帮我解决这个问题
答案 0 :(得分:0)
已编辑根据提问者的评论:
对于重定向,您应该在方法中使用$location.path(url)
。
在你的js中:
将$location
注入您的控制器:
.controller('MyCtrl', function($scope, $location) {});
然后:
$scope.MySubscription = function(event, id){
$location.path('/my-subscription');
console.log(id);
};
并在你的HTML中:
<a ng-click="MySubscription($event, '<%= user._id %>')">My Subscription</a>
答案 1 :(得分:0)
首先,您可以使用ng-href
代替href
。我知道你没有解析(通过角度)你的href的值,但如果你决定添加逻辑,它会更好地使用ng-click。第二次ng-click可以防止单击achor元素的默认行为。为此,您需要在事件上调用.preventDefault()。您需要传递给您的方法:
<a href="/my-subscription" ng-click="MySubscription($event, '<%= user._id %>')"
>My Subscription</a>
$scope.MySubscription = function(event, id){
event.preventDefault();
console.log(id);
};
最后,您可以内联您的preventDefault 而不是将$ event传递给这样的方法:
<a href="/my-subscription"
ng-click="$event.preventDefault();MySubscription('<%= user._id %>')"
>My Subscription</a>
但是,您需要再次从方法中删除event
- 将其更改回原来的MySubscription
方法