Angular js 监视带有 ng-repeat 的 Select 标签上的对象数组
Angular js watch on an Array of objects on a Select tag with ng-repeat
我想用ng-repeat观看选择标签并禁用保存按钮。我有这样的设置。
-
最初,我将有三个带有值的选择框,用户必须从三个框中至少选择一个选择值才能启用Save btn
- 用户还将具有添加更多选择框的配置。
现在,我如何观看选择框,如果我们有 5 个选择框 - 我们如何观看所有这些并启用/禁用保存按钮,如果没有被选中。
这是一个小提琴链接。与我的情况相似:Js fiddle
请帮帮我!!
好吧,您可以将所有选择放在表单中并根据需要进行设置。在按钮中,如果 de form $invalid,则有效禁用 ng 标记。
例:
<ng-form name="selectForm">
<select class="form-control" ng-model="item.name" name="select" ng-required="true">
<option>Select a campus</option>
<option>Campus 1</option>
<option>Campus 2</option>
<option>Campus 3</option>
</select>
<button type="submit" ng-disabled="selectForm.$invalid">Save</button>
</ng-form>
您可以在所有ng-select
使用同一对象作为模型:
$scope.selectedValues = {};
然后ng-repeat
中的每个选择框将不同的对象属性用作模型:
<select class="form-control" ng-model="selectedValues['campus_' + $index]">
<option>Select a campus</option>
<option>Campus 1</option>
<option>Campus 2</option>
<option>Campus 3</option>
</select>
要检查是否填充了所有值,您将观察最后一个参数设置为 true
的更改selectedValues
:
$scope.$watch('selectedValues', function(newValue, oldValue) {
// Check whether all values in $scope.selectedValues are filled
var allFilled = true;
angular.forEach($scope.selectedValues, function(value, key) {
if (!value) {
allFilled = false;
}
});
if (allFilled) {
// enable button
} else {
// disable button
}
}, true);
最后一个参数true
是必不可少的,因为它告诉 Angular 比较对象中的所有值。请参阅 https://docs.angularjs.org/api/ng/type/$rootScope.Scope。
相关文章:
- 用 javascript 数组填充 struts2 select 标签
- Angular js 监视带有 ng-repeat 的 Select 标签上的对象数组
- select标签中的Mixitup过滤器在谷歌chrome和IE中不起作用
- 2-way数据绑定在Angular UI的select标签中不起作用
- 在html的select标签中调用javascript函数
- 在Django 1.7中从select标签中获取POST值
- 不能使用angular.js和PHP在select标签中设置选定值
- 如何使用select标签的title属性删除选中的选项
- 从javascript上的select标签中获取值
- 如何从多个SELECT标签中获取值(Jquery)
- 需要一个select标签来跨文档运行javascript
- 在AngularJS中如何根据另一个Select的选择索引来改变一个Select标签的内容
- Angular的select标签带有选项和对象比较
- 我怎样才能得到select>标签选项,由用户使用Flask选择
- 使用Javascript从模板的select标签重定向到Django中的函数
- 可以在django表单中加入select标签
- 当按下快捷键时,使用angular将焦点放在select标签上
- JavaScript和JQuery在select标签中的onchange调用时不起作用
- 当使用bootstrap的list-group css类时,option标签不会被添加到select标签中
- 如何在使用angularjs的select标签中显示使用select2的标签