我尝试以<input>
为真的方式设置此ng-hide
,ng-model
中的任何内容都会重置。
<input type="text" class="form-control" ng-model="account.AccountName" ng-hide="account.AccountStatus == 'Terminated'">
因此,会有一个包含Active
和Terminated
绑定到ng-model="account.AccountStatus"
的下拉列表。如果是Active
,则字段帐户名称会在那里显示文字。我希望当我切换到Terminated
时,隐藏该输入字段并将account.AccountName
设置为&#34;&#34;。
答案 0 :(得分:3)
如果AccountStatus等于&#39;已终止&#39>,您可以在控制器中使用[ng-change]属性并定义函数来处理更改事件并重置AccountName。 例如:
<input type="text" class="form-control" ng-model="account.AccountName" ng-hide="account.AccountStatus == 'Terminated'">
<select ng-change="selectChange()" name="selectState" ng-model="account.AccountStatus">
<option value="Active">Active</option>
<option value="Terminated">Terminated</option>
</select>
<script>
angular.module('examleModule', []).controller('exampleController',['$scope', function($scope) {
$scope.account = {
AccountStatus: 'Active',
AccountName: ''
};
$scope.selectChange= function() {
// Reset AccountName if AccountStatus=='Terminated'
if($scope.account.AccountStatus=='Terminated')
$scope.account.AccountName = '';
};
}]);
</script>
答案 1 :(得分:2)
做
<select ng-model="account.AccountStatus"
ng-change="resetAccountName(account.AccountStatus == 'Terminated')">
.......
options goes here
.......
</select>
然后在你的控制器中创建像此一样的函数resetAccountName
$scope.resetAccountName = function(flag){
if(flag == true){
$scope.account.AccountName = "";
}
}
答案 2 :(得分:2)
您可以将AccountStatus变量绑定到清除AccountName变量的函数,例如在你的控制器中:
$scope.$watch('AccountStatus', function(status) {
if (status == 'Terminated')
$scope.AccountName = null;
})