Angular-In指令,元素验证始终未定义

时间:2017-02-09 08:11:24

标签: angularjs angularjs-directive popover angular-bootstrap

我有一个表单,输入字段很少。我想在用户关注输入字段或单击提交按钮时在弹出窗口中显示错误消息。   我创建了一个指令,将popover属性添加到输入字段。因此,当用户从输入字段移出时,我将检查验证,如果验证失败则要显示弹出窗口。但是,当我试图检查总是我得到不确定。

有人可以帮我解决这个问题。 我的plunker

app.directive("errorTooltip", function($compile, $interpolate, $timeout) {
  return {
    scope: true,
    require: 'ngModel',
    link: function (scope, element, attr, ctrl) { 
          element.attr('popover-trigger', "'show'"); 
          element.attr('popover-placement', 'top');
          element.attr('uib-popover', element.attr("data-info"));

          var blurred = false;
          element.on("blur",function(event){
           blurred = true;
          });
          scope.$watch(function() {
            console.log(ctrl.$name.$invalid); //always comes undefined
            element.triggerHandler('show');
            return ctrl.$name.$invalid
          }, function(invalid) {
          if (!blurred && invalid) { 
              return
              }
             console.log("test")
              //element.toggleClass('has-error', invalid);

        });


    }
  };
});

提前致谢。

1 个答案:

答案 0 :(得分:1)

替换行:

console.log(ctrl.$name.$invalid);

有了这个:

console.log(ctrl.$invalid);

更新了cannot be disabled