如何使angularjs中的表单失效? (或如何禁用angularjs中的表单?)

问题描述:

我想要预防特定用户类型的表单提交,最好不必编辑控制器中的某些内容并且不使用任何类型的输入字段?所以基本上是这样的:如何使angularjs中的表单失效? (或如何禁用angularjs中的表单?)

<form> 
    <div class ="alert" 
     ng-if="user.type='not-allowed'" 
     maybe-an-invalidate-directive> 
     <p>No! Don't!</p> 

     <!-- or something like this ??? --> 
     <input type ="hidden" 
      required 
      ng-model="'false'"> 
    </div> 
.... 
</form> 

虽然第一个应该是绝对可能的,但我很乐意听到更直接的解决方案。

编辑:

思考了一段时间之后,我想那就是我想要做的,是不是使得表格无效,但将其禁用。对于a solution see this question

+1

如果您不满意,请解释。 – 2014-10-02 19:22:25

您可以在表单元素上使用ng-submit指令,并且如果您不希望它提交,则返回false。

<form ng-submit="user.type !== 'not-allowed' && controller.function()"> 
+0

有趣!我如何将它与ng-submit上的提交功能结合使用,例如'''form ng-submit =“user.type!=='not-allowed; submit()'”>''' – 2014-10-02 19:34:37

+0

更新了我的答案。如果第一个表达式为false,则不会调用controller.function。 – 2014-10-02 19:36:55

+1

不介意downvoters,我喜欢你的答案!几乎正是我所期待的。 – 2014-10-02 19:40:45