angularjs 表單密碼驗證自定義指令實現(xiàn)代碼
更新時間:2016年10月27日 22:57:26 投稿:mdxy-dxy
這篇文章主要介紹了angularjs 表單密碼驗證自定義指令實現(xiàn)代碼,需要的朋友可以參考下
html代碼
<form name="form">
<input type="password" name="password" ng-model="password" required placeholder="請輸入密碼">
<input type="password" name="passwordConfirm" ng-model="passwordConfirm" equal-to="password" placeholder="請再次輸入密碼">
<span ng-show="form.passwordConfirm.$error.equalTo">兩次密碼不一致</span>
</form>
js
angular.module("Valid",[])
.directive("equalTo", function () {
return {
require: "ngModel",
link: function (scope, ele, attrs, ctrl) {
console.log(scope);//打印當(dāng)前作用域
console.log(attrs);//打印當(dāng)前標(biāo)簽屬性列表
console.log(ctrl);//打印當(dāng)前ctrl
var target = attrs["equalTo"];//獲取自定義指令屬性鍵值
if (target) {//判斷鍵是否存在
scope.$watch(target, function () {//存在啟動監(jiān)聽其值
ctrl.$validate()//每次改變手動調(diào)用驗證
})
// 獲取當(dāng)前模型控制器的父控制器FormController
var targetCtrl = ctrl.$$parentForm[target];//獲取指定模型控制器
console.log(targetCtrl)
ctrl.$validators.equalTo = function (modelValue, viewVale) {//自定義驗證器內(nèi)容
var targetValue = targetCtrl.$viewValue;//獲取password的輸入值
return targetValue == viewVale;//是否等于passwordConfirm的值
}
ctrl.$formatters.push(function (value) {
console.log("正在進行數(shù)據(jù)格式化的值:",value)
return value;
})
ctrl.$parsers.push(function (value) {
console.log("正在進行數(shù)據(jù)轉(zhuǎn)換的值:",value)
return value;
})
}
}
}
})
相關(guān)文章
es6+angular1.X+webpack 實現(xiàn)按路由功能打包項目的示例
本篇文章主要介紹了es6+angular1.X+webpack 實現(xiàn)按路由功能打包項目的示例,具有一定的參考價值,有需要的可以了解一下2017-08-08

