href переопределяет ng-click значением параметра в Angular.js

0

href переопределяет ng-click со значением параметра в AngularJS

HTML:

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

Код углового контроллера:

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

Хотя я перенаправляю страницу моей подписки, мне нужно получить значение, но href переопределяет его... Помогите мне разобраться в этой проблеме

2 ответа

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>
  • 0
    не получая значение ...
  • 0
    мне нужно получить значение, а также перенаправить тоже
Показать ещё 14 комментариев
0

Во-первых, вы можете использовать ng-href вместо своего href. Я знаю, что вы не разрешаете (через угловое) значение вашего href, но он играет более приятным с ng-click, если вы решите добавить к этому логику. Во-вторых, ваш ng-click может предотвратить поведение по умолчанию при нажатии на элемент ахор. Для этого вам нужно вызвать.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

  • 0
    это не работает ..
  • 0
    Создайте плункер или скрипку и отредактируйте свое сообщение так, чтобы оно содержало ссылку, чтобы нам было легче помочь.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню