在某些情况下将不同的值绑定到 ng-model

bind different value to ng-model on some condition

我已经开始使用 Angular 并且没有太多经验。
我遇到了一个问题。我正在使用 ng-showng-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 : '';
}

更高级的例子http://codepen.io/gpincheiraa/pen/mPzmxO