<li ng-repeat="item in quantityList track by $index" ng-model="isPageValid='true'">
<input value="item.quantity" ng-blur="validateQuantity(item)" ng-model="item.quantity">
</li>
&#13;
我每次发生ng-repeat循环时都试图为状态变量设置默认值。我尝试过ng-model,但这并不奏效。例如,
注意:我理解我使用ng-model的方式不正确,但这只是为了说明问题。
HTML:
<li ng-repeat="item in quantityList track by $index" ng-model="isPageValid='true'">
<input value="item.quantity" ng-blur="validateQuantity(item)" ng-model="item.quantity">
</li>
&#13;
JS:
scope.validateQuantity = function(item){
var qty = item.quantity;
if(parseInt(qty) >=1 && parseInt(qty) <= 200){
item.isQuantityValid = true;
}else{
item.isQuantityValid = false;
scope.isPageValid = false;
}
}
&#13;
循环创建一个输入框列表。目标是创建一个名为 isPageValid 的全局验证值,该值为“假”&#39;如果JS的验证对任何输入框都失败了。注意,当执行ng-blur时,运行JS验证并重新运行循环。
答案 0 :(得分:0)
我相信ng-init可以提供帮助......
<ul ng-init="isPageValid='true'">
<li ng-repeat="item in quantityList track by $index" >
<input ng-blur="validateQuantity(item)" ng-model="item.quantity">
</li>
</ul>
请注意,最好在控制器中初始化isPageValid
,该validateQuantity
与Dim Response1 As DialogResult = MessageBox.Show("Strip Metadata from selected image?" & Environment.NewLine & Environment.NewLine & "Warning this cannot be undone!", "Strip Metadata", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation)
函数的范围相同。
答案 1 :(得分:0)
以下示例说明如何在控制器中初始化isPageValid
并在每次调用validateQuantity
后更新值...
在您的控制器中:
scope.isPageValid = true;
function updatePageValid() {
scope.isPageValid = scope.quantityList.every(item => item.isQuantityValid);
}
scope.validateQuantity = function(item) {
var qty = parseInt(item.quantity);
item.isQuantityValid = (qty >= 1 && qty <= 200);
updatePageValid();
});