我使用了这个snippet所以我可以在输入模糊后看到一个“$ touch”属性,所以我可以做一些验证,它很有效,但现在我正在尝试让它工作没有重载输入,我已将其更改为:
.directive('blur', function () {
return {
restrict: 'E',
require: '?ngModel',
replace: true,
template: "<input />",
link: function postLinkFn($scope, $element, $attrs, ctrl) {
if (!ctrl) { return; }
ctrl.untouched = true;
ctrl.touched = false;
$element.on('blur', function (){
$scope.$apply(function () {
ctrl.untouched = false;
ctrl.touched = true;
});
});
}
};
});
希望能够使用“myForm.email.touched”,但这不起作用。有什么我做错了吗?
答案 0 :(得分:2)
您的代码运行正常。
也许你的HTML代码有点不对 以下是我的工作方式:
<div ng-app="app">
{{ myForm.email }}
<form name="myForm">
<blur type="email" ng-model="test" name="email" required></blur>
</form>
</div>
<强> DEMO 强>