嗨,我有一个小问题。 我有一个输入栏,有时需要以表格形式显示,有时不需要。 我担心如果有人放数据然后隐藏它并按发送,数据将被发送。所以我想在每次隐藏时重置输入。
ng-change不是一个好主意,因为它不会让我写任何东西。
<div class="form-group" ng-show="isItOne=='1' || isItTwo=='2'">
<label class="col-md-1">someName</label>
<div class="col-md-4">
<input class="form-control" type="text" name="someOtherName" ng-model="nameModel" ng-change="clearWhenChanged()">
</div>
</div>
这是函数
$scope.clearWhenChanged = function() {
$scope.nameModel = "";
};
答案 0 :(得分:1)
取出show条件并使用它来控制可见性和模型值。
$scope.showHideField = function(){
if(isItOne=='1' || isItTwo=='2'){
return true;
}
$scope.nameModel= "";
}
在你的div中调用它:
<div class="form-group" ng-show="showHideField()">
这也提供了传递标记的灵活性,您可以根据该标记决定是否清除字段的值.. :)
答案 1 :(得分:0)
您可以在设置isItOne
变量的位置调用函数。在该功能中,您可以将变量设置为1
或2
并清除模型值。
<强> HTML 强>
<div class="form-group" ng-show="show()">
<label class="col-md-1">someName</label>
<div class="col-md-4">
<input class="form-control" type="text" name="someOtherName" ng-model="nameModel" ng-change="clearWhenChanged()">
</div>
</div>
<强>控制器强>
$scope.show = function() {
if ($scope.isItOne == '1' || $scope.isItOne == '2');
return true;
$scope.nameModel = '';
}
说完所有这些可能是一个更好的选择,只是简单地取消模型在提交时的价值,以防你不希望它被发送。
答案 2 :(得分:-1)
使用标记属性ng-if="your condition"
,这将仅在条件为真时呈现标记。否则它将从DOM中删除整个输入。