href使用Angular.js中的参数值覆盖ng-click

时间:2016-01-06 10:35:17

标签: javascript jquery angularjs

href使用 AngularJS

中的参数值覆盖ng-click

HTML:

<a  href="/my-subscription" ng-click="MySubscription('<%= user._id %>')">My Subscription</a>

角度控制器代码:

$scope.MySubscription = function(id){
   console.log(id);
};

当我重定向我的订阅页面时,我需要获取值但是href会覆盖它... 帮我解决这个问题

2 个答案:

答案 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方法