如何禁用<;选项>;使用AngularJS ng选项时选择元素的位置?
当我们用AngularJS中的ng选项填充如何禁用<;选项>;使用AngularJS ng选项时选择元素的位置?,angularjs,angularjs-directive,ng-options,Angularjs,Angularjs Directive,Ng Options,当我们用AngularJS中的ng选项填充选项时,是否有方法禁用选择元素中的选项 像这样: 您可以通过将ng disabled添加到每个标记中来实现,但是如果我们使用select标记中的ng options指令,是否有办法实现这一点?可能类似于此 <button ng-click='disableSelect=true'></button> <select ng-disabled='disableSelect'></select> 您应该使用n
选项时,是否有方法禁用选择
元素中的选项
像这样:
您可以通过将ng disabled
添加到每个
标记中来实现,但是如果我们使用select
标记中的ng options
指令,是否有办法实现这一点?可能类似于此
<button ng-click='disableSelect=true'></button>
<select ng-disabled='disableSelect'></select>
您应该使用ng disabled
指令
弗斯特
第二
禁用选择
在这里,您可以找到完整的示例执行此操作的一种方法是,忘记在选择
元素上使用ng选项
,并使用ng repeat
添加选项,然后您可以在每个选项
上添加一个ng disabled
检查
使用版本1.4解决问题[仔细检查您查找的v1.4文档]来自角度1.4:
我们可以在ng选项中使用禁用,例如:
$scope.colors = [
{name:'black', shade:'dark'},
{name:'white', shade:'light', notAnOption: true},
{name:'red', shade:'dark'},
{name:'blue', shade:'dark', notAnOption: true},
{name:'yellow', shade:'light', notAnOption: false}
];
$scope.myColor = $scope.colors[2]; // red
此示例具有按阴影分组的颜色,其中某些颜色已禁用:
<select ng-model="myColor" ng-options="color.name group by color.shade disable when color.notAnOption for color in colors"></select>
我从中获得了此代码。你说的“在标签上”和“不在标签上”是什么意思?@IlanFrumer在“选择标签”和“不在选项标签上”,我已经编辑了我的帖子:)是的,就这样做吧。它是有效的。@t我有一个选择框,其中包含来自mongoDB数据库的信息。我使用如下绑定:
,我想禁用所选选项,但在单击按钮后可能会重复:确定吗@luacassus的jsbin示例似乎有效,他使用了相同的方法logic@NicolasMoise是的,它工作非常好,但我需要禁用该选项,而不是选择?有什么想法吗?@NicolasMoise需要编辑井。如果您使用ng选项而不是手动键入选项标签,这将非常容易。在控制器中,您将有一个包含所选选项(其值、标签等)的数组然后只需编写一个函数,从该数组中删除元素,并在按下按钮时调用它。@NicolasMoise啊,我自己在我的JSFIDLE中输入了一个错误,导致它失败,哈哈,这很讽刺。很酷的例子我在应用程序中也有同样的例子,但我想要的是禁用select中的选项,而不是select中的选项?卡皮切?@badaboum是的,你的问题一点也不清楚,写出更好的问题,你就会得到更好的答案。@NicolasMoise我不是以英语为母语的人!peace@badaboum没问题。我认为你实际上想说的是一个很好的问题。我只是希望其他人能够理解它,并在将来链接到它。这是本网站的重点。是的,我同意@towr,我没有看到在选择标签中使用ng选项的解决方案。我喜欢这个实现,它简洁易懂。看起来Angular 1.4允许在禁用时禁用标签…
@towr解决方案对单个下拉菜单很有效,但是如果我们有多个下拉菜单,则会怎样?在我的例子中,在一个下拉列表中选择的选项被禁用,但没有反映在其他下拉列表中……我认为如果列表使用相同的范围,应该可以工作,所以这可能是问题所在。一个选项是将选项列表放在$root
(可能不是最好的方法):这是最好的解决方案,但值得指出的是,它需要@Fulup提到的角度1.4或更高。:)
angular.module('myapp',[]).controller("ctrl", function($scope){
$scope.options=['test1','test2','test3','test4','test5'];
$scope.disabled={};
})
$scope.colors = [
{name:'black', shade:'dark'},
{name:'white', shade:'light', notAnOption: true},
{name:'red', shade:'dark'},
{name:'blue', shade:'dark', notAnOption: true},
{name:'yellow', shade:'light', notAnOption: false}
];
$scope.myColor = $scope.colors[2]; // red
<select ng-model="myColor" ng-options="color.name group by color.shade disable when color.notAnOption for color in colors"></select>