ng-model和ng-if在表单提交中

时间:2016-02-18 21:29:19

标签: javascript angularjs forms

我有一个文本框,显示为表单的一部分。只有少数表单字段才能通过ng-model获得数据。如果表单字段为空,则在表单提交时,将null发送到服务器。我想要一个占位符值,如果它是一个空文本框,就像“No value yet”。如果用户输入值或编辑值,那么我需要能够读取该值,然后将其作为表单提交的一部分发送。如何使用ng-if实现此目的?谢谢。

1 个答案:

答案 0 :(得分:2)

ng-if指令在将元素放置在任何位置时创建子范围。但是新创建的范围原型继承自父范围。

因此,在这种情况下定义ng-model时,您应该遵循Dot Rule(在对象内部具有属性),以便遵循原型继承规则。

与创建$scope.model = {}对象类似,并将所有表单属性放入其中。

<form name="myForm" ng-submit="save()" ng-if="showForm">
   <input name="firstName" ng-model="firstName"/> First Name
   <input name="lastName" ng-model="lastName"/> Last Name
   <input type="submit" value="Save"/>
</form>

或者您也可以在定义&amp;时使用controllerAs模式使用控制器。在下面的链接答案中,您可以找到controllerAs在这种情况下的工作原理。

您可以找到detailed explanation here