我已经开始使用Angular并且没有太多的经验
我遇到了一个问题。我使用的是ng-show
和ng-model
。
喜欢
<tr ng-show="responseValid">
<td> <input id="nameId" ng-model="model.name"/> </td>
</tr>
我预先填充model.name
中的值。
现在,如果响应有效,则不显示输入标记。
但是当我submit
表单时,nameId
值会被ng-model="model.name
&#34;
这里的问题是我希望model.name
如果响应不是有效的,则不应包含任何值,即隐藏输入标记时。但它没有发生。
我如何nullify/empty
model.name
中的值?我可以在标签中使用任何可用的东西吗?
答案 0 :(得分:3)
我应该使用ng-if
代替ng-show
我相信。
ng-if
从DOM移除元素,而ng-show
仅设置display:none
。
答案 1 :(得分:2)
您可以使用ngSwitch或ngIf。
<tr ng-if="responseValid">
<td> <input id="nameId" ng-model="model.name"/> </td>
</tr>
如果不满足条件,angular将完全删除DOM元素,直到条件满足为止。
答案 2 :(得分:2)
发送模型时,请检查validResponse的状态并根据此
设置模型数据示例:
$scope.sendModel = function(){
$scope.model.name = $scope.validResponse? $scope.model.name : '';
}