Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何禁用<;选项>;使用AngularJS ng选项时选择元素的位置?_Angularjs_Angularjs Directive_Ng Options - Fatal编程技术网

如何禁用<;选项>;使用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

当我们用AngularJS中的ng选项填充
选项时,是否有方法禁用
选择
元素中的
选项

像这样:


您可以通过将
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>