0
我有一個動態表單,利用ng-min/ng-max進行驗證。我的ng-min分別綁定到對象參數modelParam.maxvalue和modelParam.minvalue。我的要求是顯示一些警報或錯誤,如果我的表單域中輸入的值超過ng-max或低於ng-min。在這方面非常簡單。我試圖用$ viewValue做這件事,但它沒有按計劃完成。
我的形式:
<form name="modelParamsForm" novalidate>
<div class="form-group col-md-4" ng-repeat="modelParam in modelParams" ng-
class="{ 'has-error' : modelParamsFieldForm.value.$invalid }">
<ng-form name="modelParamsFieldForm">
<label class="col-md-5">{{ modelParam.paramname }}</label>
<input type="number" class="form-control input-sm col-md-5" ng-
model="modelParam.value" name="value" ng-min="modelParam.minvalue"
ng-max="modelParam.maxvalue" required style="maxhight: 20px">
<span ng-show="modelParamsFieldForm.value.$invalid"></span>
<span ng-if="$viewValue > modelParam.maxvalue">Error message</span>
<span ng-if="$viewValue < modelParam.minvalue">Error message</span>
</ng-form>
</div>
...
我的控制器是非常標準的...
$scope.modelParams = {};
$scope.loadModelParams = function(modelName) {
var req = {
method : 'GET',
url : urlPrefix + 'PB_OPTIMISER_GET_MODEL_PARAMS',
params: {modelName : modelName}
};
$scope.loading = true;
$http(req).then(function(response) {
$scope.loading = false;
$scope.modelParams = response.data;
$scope.modelParamsOld = angular.copy($scope.modelParams);
}, function() {
$scope.loading = false;
});
};
很顯然,我做了一些錯誤與
<span ng-if="$viewValue > modelParam.maxvalue">Error message</span>
<span ng-if="$viewValue < modelParam.minvalue">Error message</span>
我相信它產生於我誤解如何使用$ viewValue。
它的工作!由於某種原因,它接受「modelParamsFieldForm.value。$ viewValue」,但不是「... $ veiwValue.length」這是因爲modelParam.minvalue是一個整數? – MadCatm2
你確定,因爲它應該只與$ viewValue.length一起工作,因爲它與一個整數比較。 length屬性返回一個整數。如果不包含if語句中的長度,那麼它會在單個字符後觸發minvalue警告,然後在2個或更多後觸發minvalue警告,它將始終顯示最大值警告。如果沒有.length屬性,它只是將字符串與整數進行比較 – Sasang
您是對的!當.length屬性未被添加時,它會檢查每個整數的值,但是當我添加.length時,我的錯誤消息不再出現:/ – MadCatm2