【问题标题】:Moniter form validity from inside the controller从控制器内部监控表单有效性
【发布时间】:2016-08-23 09:05:07
【问题描述】:

我有一个表单布局..我想从控制器内部观察它的有效性,以便我可以更改一些模型值并调用一个函数

 $scope.$watch('address',function(){
      console.log(address.$valid);
});
<form name="address">
<div class="row">
  <div class="col col-100">
      <label class="item item-input item-stacked-label">
          <span class="input-label">Address1</span>
          <input type="text" name="address.addr1" ng-model="addr.addr1"  required>
      </label>
  </div>
</div>
</form>

我已尝试将 $scope 附加到我的表单名称。它会引发错误,提示“找不到未定义的属性 $valid”。 目前这个抛出未定义

【问题讨论】:

  • 它应该是$scope.$watch('address',function(newVal){ console.log(newVal &amp;&amp; newVal.$valid); }); 或者只是有$scope.address.$valid 而不是address.$valid
  • 看看下面的注释我说我已经尝试附加 $scope 但它没有工作
  • 当我 console.log ($scope.address.$valid) 抛出错误“无法读取未定义的属性 '$valid'” ...只需执行 console.log(address) 即可我是表单的 HTML 代码
  • $scope 在最初的手表触发时不会有address 的形式,您应该尝试建议的第一种方式
  • 不帮助 bruv...仍然抛出未定义

标签: angularjs forms


【解决方案1】:

可以看函数返回值:

$scope.watch(function() {
  return $scope.address.$valid;
}, function() {
  console.log($scope.address.$valid);
});

【讨论】:

  • 你确定吗,因为这给了我一个错误,说 $scope.$watch 不是函数
  • 我当然确定,如果我不确定,我就不会发布它。你注入 $scope 了吗?
  • 正确设置 Angular 应用程序,它将工作。如果您有 angular 1 应用程序,那么加载 angular 2 有什么意义。它是$watch,而不是“观看”。
猜你喜欢
  • 2014-09-21
  • 2020-10-13
  • 1970-01-01
  • 2015-08-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-27
相关资源
最近更新 更多