简体   繁体   English

如何禁用AngularJS中的下拉列表项?

[英]How to disable dropdown list item in AngularJS?

I am a beginner to AngularJS and I am making a web app that needs to disable exiting values in a dropdown list. 我是AngularJS的初学者,我正在制作一个Web应用程序,该应用程序需要禁用下拉列表中的退出值。

I know how to do it in jQuery. 我知道如何在jQuery中进行操作。 It is just like this: http://jsfiddle.net/qiushibaike/FcLLn/ 就像这样: http : //jsfiddle.net/qiushibaike/FcLLn/

But I don't really know how to do it in AngularJS, Should I try to disable the item or hide it? 但是我真的不知道如何在AngularJS中做到这一点,我应该尝试禁用该项目还是将其隐藏? Can I set a value 我可以设定一个值吗

HTML HTML

<select ng-model="numbers.value" required>
     <option ng-repeat="item in items"> {{item.name}} </option>
</select><br/>

JavaScript 的JavaScript

$scope.numbers= {};

$scope.items = [
    { id: 1, name: '11111'},
    { id: 2, name: '22222'},
    { id: 3, name: '33333'}
];

If I have something like this, how can I disable or hide the option 2 and 3 by AngularJS like what I did by using jQuery? 如果我有类似的东西,如何像我使用jQuery一样禁用或隐藏AngularJS的选项2和3?

This is also possible with ngOptions. ngOptions也可以这样做。

You just need to add " disable when " in your ng-options tag. 您只需要在ng-options标签中添加“ disable when ”即可。

In your case, you can also do like this 就您而言,您也可以这样

HTML HTML

    <select ng-model="numbers.value" 
    ng-options="var.name as var.name disable when var.disabled for var in items" required>
      <option value="">-- Select --</option></select>

Javascript 使用Javascript

$scope.items = [
    { id: 1, name: '11111'},
    { id: 2, name: '22222', disabled: true },
    { id: 3, name: '33333', disabled: true }
]

Plunkr Plunkr

If you want to disable any option dynamically from your code, 如果您想从代码中动态禁用任何选项,

here is a Plunkr : Dynamic Example . 这是一个Plunkr:动态示例

Use Angular's ngDisabled directive. 使用Angular的ngDisabled指令。

HTML HTML

<select ng-model="numbers.value" required>
    <option ng-repeat="item in items" ng-disabled="item.disabled"> {{item.name}} </option>
</select>

Javascript 使用Javascript

$scope.items = [
    { id: 1, name: '11111'},
    { id: 2, name: '22222', disabled: true },
    { id: 3, name: '33333', disabled: true }
]

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM