javascript - Angular : one ng-click call the function twice why?

标签 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"); 
        .................
}

最佳答案

你会因为 <input type="radio"> 而出现这种行为在你的里面<li>

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

DEMO plunkr 1


也许你想要这样的东西:

Controller

$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

关于javascript - Angular : one ng-click call the function twice why?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45772971/

相关文章:

javascript - React redux - 更新状态中的嵌套数组

javascript - Jquery 选项卡不工作

javascript - 使用 AJAX 和 PHP 上传文件 - $_FILES 数组为空

javascript - Web 组件与 JS 中的复合模式有何关系?

javascript - VB.NET Web API CORS PUT 预检 405 错误

javascript - 从下拉菜单中选择元素

jquery - 单击其他元素时激活按钮

android - ionic 页面转换不适用于具有推送功能的页面

javascript - 如何从 Controller 函数内部获取 $scope?

javascript - Angular 传递杂项符号