javascript – 如何在指令中检查转录表单的有效性?

前端之家收集整理的这篇文章主要介绍了javascript – 如何在指令中检查转录表单的有效性?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
重写这个问题来澄清

如何在指令中检查转录形式的有效性?
我想检查myForm.$valid在指令的link函数中.我会将不同的表单注入我的指令,或以不同的形式使用我的指令,你可以说

难度是范围是孤立的,没有以下答案对我有用.

请在这里找到完整的代码,

https://plnkr.co/edit/K3IrE5KVehWXFM9JEMvE?p=preview

当窗体无效时,我想禁用“保存”按钮.

解决方法

要回答您的主要问题,您可以像任何其他模型值一样公开和绑定表单:
angular.module("main",[])
		.directive("formDirective",formDirective);

function formDirective() {
  return {
    restrict: "A",scope: {
      formModel: "=formModel"
    },link: function (scope,element,attrs) {
      scope.$watch("formModel.$valid",function (newValue,oldValue) {
       console.log(newValue,oldValue);
      });
    }
  }
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="main">
	<div form-directive form-model="myForm">
	   <div>
	   <form name="myForm">
	      <div>
	      	<input type="text" ng-model="name" required="required">
	      </div>
         Valid: {{myForm.$valid}}
	   </form>
	   <div>
	</div>
</div>

但是,从谈话中变得清楚,您的整体问题更复杂.

我在这里添加了一个工作示例:https://plnkr.co/edit/lkfdmc0PLRadfYFVhFAm?p=preview

这里要实现的关键方面是:

>你正在使用$uibModal.open打开一个模态对话框,它将实例化引用的控制器editCtrl并加载你的模板editCtrl.html.>加载过程包括Angular正在编译模板.此模板包含根级别的指令,因此也需要编译指令.>该指令使用截断并加载模板dialog.html.重要的是要注意,您的esDlg指令的范围现在可以在dialog.html的模板中使用,因此您可以访问在指令声明的范围内定义的所有属性.您已经使用对话框的标题和文本.>我们所需要做的就是在这里绑定有效性信息,以便我们可以在对话框中使用它.

猜你在找的JavaScript相关文章