我已经为此苦苦挣扎了一段时间……我目前正在使用Angular。
假设我们有五个选择选项字段,并且我们正在为每个列表遍历相同的列表。
我们的选择是:
$scope.items = [one, two, three, four, five];
如果我选择一个,我将如何为其余选择选项字段禁用选择的选项?而且,如果我转到另一个选择选项字段并选择一个可用的项目,则它将对所有其他字段禁用该项目。
任何帮助甚至指导如何做到这一点,将不胜感激。谢谢
您可能需要两种可能的解决方案,这取决于禁用规范所需的方式。
select
元素中选择的项目来禁用。此解决方案需要一个过滤器,该过滤器将除去当前 select
标签已选择的当前项目以外的所有已选择项目。演示
Java脚本
.controller('Ctrl', function($scope) {
$scope.items = [1,2,3,4,5];
$scope.data = [];
})
.filter('arrayDiff', function() {
return function(array, diff) {
var i, item,
newArray = [],
exception = Array.prototype.slice.call(arguments, 2);
for(i = 0; i < array.length; i++) {
item = array[i];
if(diff.indexOf(item) < 0 || exception.indexOf(item) >= 0) {
newArray.push(item);
}
}
return newArray;
};
});
HTML
<select
ng-repeat="(modelIndex, itemValue) in items track by modelIndex"
ng-model="data[modelIndex]"
ng-options="item for item in $parent.items | arrayDiff:data:data[modelIndex]">
<option value="">Select Number</option>
</select>
disabled
为选项项设置属性来禁用它,这实际上是解决问题的复杂方法,因为它不使用标准角度语法。通过使用迭代项目并添加一个表达式,该表达式针对其他元素中的其他选定项目评估当前选定的项目。 select
ng-option``ng-repeat``ng-disabled
select
演示
Java脚本
.controller('Ctrl', function($scope) {
this.items = ['1', '2', '3', '4', '5'];
this.data = [];
})
.filter('hasIntersection', function() {
return function(item, array) {
return array.indexOf(item) >= 0;
};
});
HTML
<select
ng-repeat="(selectIndex, itemValue) in Demo.items"
ng-model="Demo.data[selectIndex]">
<option value="" ng-selected="Demo.data[selectedIndex] == item">
Select Number
</option>
<option ng-repeat="item in Demo.items"
value="{{item}}"
ng-disabled="item | hasIntersection:Demo.data"
ng-selected="Demo.data[selectIndex] == item">
{{item}}
</option>
</select>
问题内容: 我正在使用实质性的UI Select组件,并且试图在内部构建过滤器以仅显示与用户输入的内容匹配的项目。 我为正在开发的内容构建了一个最小的示例。 现在我的问题是,默认情况下,选择组件允许用户按下任何字母,并且如果存在第一个字母与用户输入匹配的选项,它将选择该选项。 所以,如果我有3个选项(,和)和用户类型选择部件将选择选项,我的文本字段不会改变的价值。但是,如果用户键入,则文本字段将更
我希望,如果我选择“mammals”,动物选择选项只显示值为1的选项data-animal_class。 我知道如何获得哺乳动物值,但我不知道如何使用过滤器 这是我的代码:
我有困难在提交时在烧瓶应用程序的WTForm页面中获取当前选择的项目。提交时,form.tableselector.data值始终等于1,无论选择了SseltField中的哪个项目(并且所有选项都具有表单(1,'table_name')1-10中的唯一表id,其中1是整数。 以下是当前代码: 意见。派克 form.py 桌面视图。html 我注意到,在调试表单时,wtf元对象csrf属性等于Tru
问题内容: 如何对包含可选NSdate的可选数组进行排序? 如何根据dateCompleted对数组排序? 问题答案: 您的排序功能可以结合使用可选链接和nil合并运算符: 这将对值上的项目进行排序,所有和和一起的项目都被视为“在遥远的过去”,以便在所有其他项目之前对其进行排序。 Swift 3的 更新(假设是):
问题内容: 我需要具有2个字段的django modelform,其中第二个字段选择列表取决于在第一个字段中选择的内容。我的模特: 如果vehicle_type设置为 personal, 如何将 make 字段的选择设置为 PERSONAL_MAKES ?我怎样才能做到这一点?在模型级别上可以吗? __ 问题答案: 您可能不能,因为这取决于用户与表单的交互:您的服务器无法预先知道用户将表单发送到浏
进程优先权 当计划线程时使用的优先权。在有需要时可调整优先权到较高或较低。 文件位置 你可以为不同的文件类型改变文件夹。在默认情况下,大部分的文件设置在设置位置。然而, 一些文件是保存在 profiles目录和全部日志文件保存在 logs 目录。 文件关联(只限于完整版本) 文件关联是 Navicat 使用什么来打开 Navicat 已保存的文件。例如:.npt 文件(数据传输设置文件)将会使用数