在某些情况下将不同的值绑定到 ng-model
bind different value to ng-model on some condition
我已经开始使用 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
“绑定”
这里的问题是,如果响应无效,即当输入标签被隐藏时,我希望 model.name
不应包含任何值。但它没有发生。
如何nullify/empty
model.name
中的值?我可以在标签本身中使用什么吗?
您可以使用 ngSwitch 或 ngIf。
<tr ng-if="responseValid">
<td> <input id="nameId" ng-model="model.name"/> </td>
</tr>
如果不满足条件,angular将完全删除DOM元素,直到条件满足。
我相信你应该使用 ng-if
而不是 ng-show
。
ng-if
从 DOM 中删除元素,而 ng-show
仅设置 display:none
.
发送模型时,检查 validResponse 的状态并根据此设置模型数据
示例:
$scope.sendModel = function(){
$scope.model.name = $scope.validResponse? $scope.model.name : '';
}
我已经开始使用 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
“绑定”
这里的问题是,如果响应无效,即当输入标签被隐藏时,我希望 model.name
不应包含任何值。但它没有发生。
如何nullify/empty
model.name
中的值?我可以在标签本身中使用什么吗?
您可以使用 ngSwitch 或 ngIf。
<tr ng-if="responseValid">
<td> <input id="nameId" ng-model="model.name"/> </td>
</tr>
如果不满足条件,angular将完全删除DOM元素,直到条件满足。
我相信你应该使用 ng-if
而不是 ng-show
。
ng-if
从 DOM 中删除元素,而 ng-show
仅设置 display:none
.
发送模型时,检查 validResponse 的状态并根据此设置模型数据
示例:
$scope.sendModel = function(){
$scope.model.name = $scope.validResponse? $scope.model.name : '';
}