用于在元素上赋值属性的自定义指令

时间:2014-10-25 15:39:08

标签: javascript angularjs angularjs-directive

我使用了这个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”,但这不起作用。有什么我做错了吗?

1 个答案:

答案 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