javascript - ng-model 未在 has-error 类中传递

标签 javascript angularjs

我的指令下面有一个模板

<input ng-model="acc" type="number" required />
<p class="input-details" ng-class="{'has-error': confirm(acc, 3, 17)}"></p>

我的指令 Controller 函数中有一个这样的方法

$scope.confirm= function(value, min, max) {
  if (!value) return false;
  return ("" + value).length < min || ("" + value).length > max;
};

在我的 confirm 方法中,该值始终作为 undefined 传递,但是当我在输入的 ng-change 中调用相同的方法时就像下面这样,它已经通过了。

<input ng-model="acc" type="number" ng-change="confirm(acc,3,17)" required />

为什么 ng-class 没有获得正确的 ng-model 值?

最佳答案

(""+3).length = 1 || (""+17).length = 2 由于类型转换,请参阅 codepen,例如,将输入的数字调高,看看 (""+acc).length 等于什么以及如何修复 https://codepen.io/anon/pen/vKQZoR

app.controller('classTesterCtrl', function($scope, $log){
  $scope.confirm= function(value, min, max) {
    if($scope.acc < 3 || $scope.acc  > 17){
      $scope.valid = false;
    } else {
      $scope.valid = true;
    }
  };
});


<div ng-app="modelTest">
  <div ng-controller="classTesterCtrl">
    <input ng-model="acc" type="number" ng-change="confirm()" required />
  <p class="input-details" ng-class="{'has-error': valid}"></p>
    {{(""+acc).length}}
    {{acc}}
    {{valid}}
  </div>
  </div>

关于javascript - ng-model 未在 has-error 类中传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38836104/

相关文章:

javascript - react D3 : How to use react-d3-tooltip and react-d3-zoom in the same chart?

AngularJS 指令 - 隔离范围特殊绑定(bind)字符

javascript - 如何停止或防止向左或向右滑动事件?

javascript - Angular/MEAN.io 中的路由安全漏洞?

javascript - Node.js 中的 Mysql select 子句

javascript - 将地理位置坐标存储到 websql 数据库中的最佳方法,也可以在输出后在谷歌地图中工作

javascript - 在 JQuery 函数中回显 sql 查询

javascript - Selection .val 有奇怪的、难以理解的值(Chosen 插件)

javascript - 在 Javascript 中将带引号的变量添加到字符串中

javascript - 如何设置 Angular ui-router 状态,以便主模板不会在每次状态更改时刷新?