AngularJS:一次ng-click调用该函数两次为什么?

时间:2017-08-19 14:57:02

标签: 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="watchlist" >My Watchlist</label>
</li>

脚本

  $scope.togglePrice = function (price) {
        console.log(price+"newwww"); 
        .................
}

1 个答案:

答案 0 :(得分:3)

由于<input type="radio">

中的<li>,您会收到此行为

您可以编写<li ng-click="togglePrice(2);$event.preventDefault()">以摆脱第二次点击。但是,您的单选按钮状态不会改变。

DEMO plunkr 1

也许你想要这样的东西:

控制器

$scope.watchlist = 'City1';    
$scope.list = ["City1", "City2","City3"];

HTML

<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>

DEMO plunkr 2