Menu
×
   ❮     
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

AngularJS 选择框


AngularJS 允许您根据数组或对象中的项目创建下拉列表。


使用 ng-options 创建选择框

如果您想根据 AngularJS 中的对象或数组创建下拉列表,则应使用 ng-options 指令

示例

<div ng-app="myApp" ng-controller="myCtrl">

<select ng-model="selectedName" ng-options="x for x in names">
</select>

</div>

<script>
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
  $scope.names = ["Emil", "Tobias", "Linus"];
});
</script>
尝试一下 »

ng-options 与 ng-repeat

您也可以使用 ng-repeat 指令创建相同的下拉列表

示例

<select>
  <option ng-repeat="x in names">{{x}}</option>
</select>
尝试一下 »

因为 ng-repeat 指令会对数组中的每个项目重复一段 HTML 代码,所以它可以用来创建下拉列表中的选项,但 ng-options 指令是专门为用选项填充下拉列表而设计的。

我应该使用什么?

您可以同时使用 ng-repeat 指令和 ng-options 指令

假设您有一个对象数组

$scope.cars = [
  {model : "Ford Mustang", color : "red"},
  {model : "Fiat 500", color : "white"},
  {model : "Volvo XC90", color : "black"}
];

示例

使用 ng-repeat

<select ng-model="selectedCar">
  <option ng-repeat="x in cars" value="{{x.model}}">{{x.model}}</option>
</select>

<h1>您选择了:{{selectedCar}}</h1>
尝试一下 »

当使用对象作为值时,使用 ng-value 而不是 value

示例

ng-repeat 用作对象

<select ng-model="selectedCar">
  <option ng-repeat="x in cars" ng-value="{{x}}">{{x.model}}</option>
</select>

<h1>您选择了一辆 {{selectedCar.color}} {{selectedCar.model}}</h1>
尝试一下 »

示例

使用 ng-options

<select ng-model="selectedCar" ng-options="x.model for x in cars">
</select>

<h1>您选择了:{{selectedCar.model}}</h1>
<p>它的颜色是:{{selectedCar.color}}</p>
尝试一下 »

当选定值为对象时,它可以保存更多信息,并且您的应用程序可以更加灵活。

在本教程中,我们将使用 ng-options 指令。



数据源作为对象

在前面的示例中,数据源是一个数组,但我们也可以使用对象。

假设您有一个包含键值对的对象

$scope.cars = {
  car01 : "Ford",
  car02 : "Fiat",
  car03 : "Volvo"
};

ng-options 属性中的表达式对于对象来说略有不同

示例

使用对象作为数据源时,x 代表键,y 代表值

<select ng-model="selectedCar" ng-options="x for (x, y) in cars">
</select>

<h1>您选择了:{{selectedCar}}</h1>
尝试一下 »

选定值始终是键值对中的

键值对中的也可以是对象

示例

选定值仍然是键值对中的,只是这次它是一个对象

$scope.cars = {
  car01 : {brand : "Ford", model : "Mustang", color : "red"},
  car02 : {brand : "Fiat", model : "500", color : "white"},
  car03 : {brand : "Volvo", model : "XC90", color : "black"}
};
尝试一下 »

下拉列表中的选项不必是键值对中的,它也可以是值,或者值对象的属性

示例

<select ng-model="selectedCar" ng-options="y.brand for (x, y) in cars">
</select>
尝试一下 »

×

Contact Sales

If you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail:
[email protected]

Report Error

If you want to report an error, or if you want to make a suggestion, send us an e-mail:
[email protected]

W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookie and privacy policy.

Copyright 1999-2024 by Refsnes Data. All Rights Reserved. W3Schools is Powered by W3.CSS.