使用指令无效的表单验证

时间:2014-03-12 11:57:59

标签: javascript angularjs angularjs-directive

我是angularJs的新手....我正在尝试编写一个指令,将输入框包装在一个表单标记中,然后是一个包含验证的“div”。验证无效。 plunker链接:PLUNKER

我使用以下代码

包装输入标记
var getHtml = function(){
                return '<div data-ng-show="myform.myfield.$error.required &&myform.myfield.$dirty ">field is required</div>';
              }

    element.attr('name','myfield');
    element.wrap('<form name="myform"></form>');
    element.after(getHtml());

1 个答案:

答案 0 :(得分:3)

那是因为你没有编译form元素。 代替:

$compile(element.contents())(scope);

你必须:

$compile(element.parent())(scope);

但是这本身会导致无限循环的编译,所以你必须在编译之前删除cs-options属性。此外,您必须在预编译而不是后编译(即链接阶段)中执行此操作。

这里的工作示例:http://plnkr.co/edit/hEbRbwPqi64vZ4CNGf5N?p=preview