Angular指令 - 表单/输入验证和传递参数/属性

时间:2015-08-03 19:52:35

标签: javascript angularjs forms validation angularjs-directive

我有点惊讶我没有找到完整的解决方案,因为它似乎是一个常见的用例:

我需要帮助创建自定义角度指令。我所拥有的是一个包含基本前端验证的表单,以及<span>中显示在提交中的邮件。

我有简单的验证形式: jsbin sample

我想要实现的目标:

  • ng-max-lengthng-min-lengthng-patternng-model等内容不应该在模板内部进行硬编码,而应作为我的参数传递自定义标记到指令模板的内部 - 并分配给<input>元素。 (甚至更喜欢将一些属性分配给input和其他一些属性,例如label内部,这样指令模板不仅可以包含输入,还可以包含更大的HTML部分,包括标签)
  • 两种验证 - 一种是通过突出显示基于类的字段(没有问题),第二种是<span>元素出现在提交

我面临什么问题?

  1. 如何将自定义标记中的参数(属性)传递给模板内的输入?
  2. 我现在有一个HTML文件:formName.inputName.$error.typeOfError;如何从指令/模板的内部实现呢?以某种方式参数化它。
  3. 关于在提交时显示验证消息:按下提交按钮时是否设置了变量submitted并在重置表单时清除了一个好主意或有更好的解决方案吗?
  4. 使范围隔离,以使指令的多个实例不会相互干扰。
  5. 提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

创建角度指令的文档并没有真正给出示例,但您需要的是定义的范围属性。

检查以下内容: formtastic

另外,使用输入[编号]要非常小心,这个例子让我很头疼,因为它不是正常的ng类型的指令。

我使用过的文档: https://jsbin.com/zabuza/edit?html,js,output docs1