在某些条件下将不同的值绑定到ng-model

时间:2016-04-28 11:38:55

标签: angularjs angular-ngmodel angularjs-ng-show

我已经开始使用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&#34;

绑定

这里的问题是我希望model.name如果响应不是有效的,则不应包含任何值,即隐藏输入标记时。但它没有发生。

我如何nullify/empty model.name中的值?我可以在标签中使用任何可用的东西吗?

3 个答案:

答案 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 : '';
}

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