javascript - ng-click 中复选框返回 false 而不是 true

标签 javascript angularjs checkbox angularjs-ng-click

在下面的代码中,$scope.checkboxModel 设置为 false。当我单击复选框并在第一次单击时调试代码时,选中复选框时它返回 false 而不是 true。

var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
  $scope.showPassword = '';
  $scope.password = '';
  $scope.checkboxModel = false;
  $scope.showHidePassword = function(checkboxModel) {
    $scope.showPassword = checkboxModel ? '' : $scope.password;
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="myApp" ng-controller="myCtrl">
  <div class="input-group bmargindiv1 col-md-12">
    <span class="input-group-addon ndrftextwidth text-right" style="width:180px">Password :</span>
    <input type="password" name="itemname" id="contactno" class="form-control" placeholder="password" ng-model="password">
  </div>
  <div class="input-group bmargindiv1 col-md-12">
    <span class="input-group-addon ndrftextwidth text-right" style="width:180px">Show me Password <input type="checkbox" ng-model="checkboxModel" ng-click="showHidePassword(checkboxModel)" /></span>
    <input type="text" name="itemname" id="contactno" class="form-control" placeholder="password" ng-model="showPassword" readonly="readonly">
  </div>
</div>

为什么当复选框被选中时第一次不返回 true?

最佳答案

这是由于版本不匹配而发生的。请参阅下面使用 Angular 1.3.14 的示例

var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
  $scope.showPassword = '';
  $scope.password = '';
  $scope.checkboxModel = false;
  $scope.showHidePassword = function(checkboxModel) {
    $scope.showPassword = checkboxModel ? $scope.password : '';
    console.log("checkboxModel : " + checkboxModel);
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="myApp" ng-controller="myCtrl">
  <div class="input-group bmargindiv1 col-md-12">
    <span class="input-group-addon ndrftextwidth text-right" style="width:180px">Password :</span>
    <input type="password" name="itemname" id="contactno" class="form-control" placeholder="password" ng-model="password">
  </div>
  <div class="input-group bmargindiv1 col-md-12">
    <span class="input-group-addon ndrftextwidth text-right" style="width:180px">Show me Password <input type="checkbox" ng-model="checkboxModel" ng-click="showHidePassword(checkboxModel)" /></span>
    <input type="text" name="itemname" id="contactno" class="form-control" placeholder="password" ng-model="showPassword" readonly="readonly">
  </div>
</div>

关于javascript - ng-click 中复选框返回 false 而不是 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33039118/

相关文章:

javascript - 通过nginx运行两个nodejs实例

AngularJS ui-router 可选参数

javascript - 从循环中删除重复项 - angularjs/javascript

angular - 禁用 PrimeNG 复选框

javascript - 等到所有 jQuery Ajax 请求完成?

javascript - 使用 Application Insights 配置 NLog 和 JS 异常

javascript - 使用 ocLazyLoad 插件加载组件和其他依赖项

css - 在移动设备上查看时缺少自定义 CSS 复选框边距

javascript - 用图像替换复选框?

javascript - 如何在不替换现有字段的情况下更新 MongoDB 中的记录?