Javascript AngularJS:one ng click调用函数两次为什么?

Javascript AngularJS:one ng click调用函数两次为什么?,javascript,jquery,angularjs,Javascript,Jquery,Angularjs,我有以下angularjs代码。当我单击li标记时,该函数将被调用两次。这意味着点击两次请求通过,我得到两次响应为什么?即使我将ng click更改为只调用一次函数的单选按钮,为什么 <li ng-click="togglePrice(2);"> <input type="radio" name="personalGroup" ng-model="watchlist" value="watchlist" id="watchlist"> <label for

我有以下angularjs代码。当我单击li标记时,该函数将被调用两次。这意味着点击两次请求通过,我得到两次响应为什么?即使我将ng click更改为只调用一次函数的单选按钮,为什么

 <li ng-click="togglePrice(2);">
  <input type="radio" name="personalGroup" ng-model="watchlist" value="watchlist" id="watchlist">
  <label for="watchlist" >My Watchlist</label>
</li>

您之所以会出现这种行为,是因为您的
  • 您可以编写
  • 来摆脱第二次单击。但是,您的单选按钮状态不会更改


    也许你想要的是:

    控制器

    HTML

  • {{watchlist}}

  • 你不应该将交互事件附加到非交互元素上,这是一种不好的做法。请你详细说明或用例子解释一下,bez我是AngularJS的新手,与AngularJS无关,它的HTML实践。像
  • 等非交互元素不应附加事件(例如,单击)。这些只能在交互式元素中使用,如
    等。元素上的单击事件会在
    元素上创建一个单击事件。
  • 上的
    ng click
    指令接收两个单击事件。使用
    event.target.tagName
    区分这两个事件。Bro单击时,我想检查单选按钮。。所以只有我喜欢这个。任何其他方法都可以解决这个问题。即使我使用了“a”标记,我也无法检查单选按钮。@Rijo如果你想检查单选按钮,并捕捉它的状态,你不需要点击
    ng
    指令
      $scope.togglePrice = function (price) {
            console.log(price+"newwww"); 
            .................
    }
    
    $scope.watchlist = 'City1';    
    $scope.list = ["City1", "City2","City3"];
    
    <li  ng-repeat="watchlist in list">
     <label>
           <input type="radio" name="personalGroup" 
           ng-model="$parent.watchlist" 
           ng-value="watchlist"
           ng-change="togglePrice(watchlist)" />{{watchlist}}
          </label>
    </li>