1 angular.module("Valid",[]) 2 3 .directive("equalTo", function () { 4 return { 5 require: "ngModel", 6 link: function (scope, ele, attrs, ctrl) { 7 8 console.log(scope);//打印当前作用域 9 console.log(attrs);//打印当前标签属性列表10 console.log(ctrl);//打印当前ctrl11 12 var target = attrs["equalTo"];//获取自定义指令属性键值13 14 if (target) { //判断键是否存在15 scope.$watch(target, function () { //存在启动监听其值16 ctrl.$validate()//每次改变手动调用验证17 }) 18 19 // 获取当前模型控制器的父控制器FormController20 var targetCtrl = ctrl.$$parentForm[target];//获取指定模型控制器21 console.log(targetCtrl)22 23 ctrl.$validators.equalTo = function (modelValue, viewValue) { //自定义验证器内容24 25 var targetValue = targetCtrl.$viewValue;//获取password的输入值26 27 return targetValue == viewValue;//是否等于passwordConfirm的值28 }29 30 ctrl.$formatters.push(function (value) {31 console.log("正在进行数据格式化的值:",value)32 return value;33 })34 35 ctrl.$parsers.push(function (value) {36 console.log("正在进行数据转换的值:",value)37 return value;38 })39 }40 }41 }42 })