AngularJS下拉选择框(select)

AngularJS Select(选择框)

AngularJS 可以使用数组或对象创建一个下拉列表选项。

使用 ng-options 创建选择框

在 AngularJS 中我们可以使用 ng-option 指令来创建一个下拉列表,列表项通过对象和数组循环输出,如下实例:

<div ng-app="myApp" ng-controller="myCtrl">
 
<select ng-init="selectedName = names[0]" 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 = ["Google", "Runoob", "Taobao"];
});
</script>

ng-init 设置默认选中值。

ng-options 与 ng-repeat

我们也可以使用ng-repeat 指令来创建下拉列表:

<select>
<option ng-repeat="x in names">{{x}}</option>
</select>

ng-repeat 指令是通过数组来循环 HTML 代码来创建下拉列表,但 ng-options 指令更适合创建下拉列表,它有以下优势:

使用 ng-options 的选项的一个对象, ng-repeat 是一个字符串。

应该用哪个更好?

假设我们使用以下对象:

$scope.sites = [
    {site : "Google", url : "http://www.google.com"},
    {site : "Runoob", url : "http://www.runoob.com"},
    {site : "Taobao", url : "http://www.taobao.com"}
];

ng-repeat 有局限性,选择的值是一个字符串:

使用 ng-repeat:

<select ng-model="selectedSite">
<option ng-repeat="x in sites" value="{{x.url}}">{{x.site}}</option>
</select>

<h1>你选择的是: {{selectedSite}}</h1>

使用 ng-options 指令,选择的值是一个对象:

使用 ng-options:

<select ng-model="selectedSite" ng-options="x.site for x in sites">
</select>

<h1>你选择的是: {{selectedSite.site}}</h1>
<p>网址为: {{selectedSite.url}}</p>

当选择值是一个对象时,我们就可以获取更多信息,应用也更灵活。

数据源为对象

前面实例我们使用了数组作为数据源,以下我们将数据对象作为数据源。

$scope.sites = {
    site01 : "Google",
    site02 : "Runoob",
    site03 : "Taobao"
};

ng-options 使用对象有很大的不同,如下所示:

使用对象作为数据源, x 为键(key), y 为值(value):

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

<h1>你选择的值是: {{selectedSite}}</h1>

你选择的值为在 key-value 对中的 value

value 在 key-value 对中也可以是个对象:

选择的值在 key-value 对的 value 中, 这是它是一个对象:

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

在下拉菜单也可以不使用 key-value 对中的 key , 直接使用对象的属性:

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

另一种使用方式,在无法根据ng-model自动选择对应的项时可以使用这个方式:

<label class="item item-input item-select">
          <span class="input-label">人员分类</span>
          <select ng-model="search.stafftype">
            <option value="{{$index}}" ng-repeat="t in staffTypes" ng-selected="number==$index">{{t}}</option>         
          </select>
</label>

 

转载于:https://my.oschina.net/u/2391658/blog/823000

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在UniApp中,可以使用`<select>`标签来创建下拉选择。下面是对UniApp下拉选择的介绍: 1. `<select>`标签:`<select>`标签用于创建下拉选择,可以包含多个`<option>`标签作为选项。 2. `<option>`标签:`<option>`标签用于定义下拉选择的选项。可以设置`value`属性来指定选项的值,同时在`<option>`标签内添加文本内容作为选项的显示文本。 3. 绑定数据:可以通过`v-model`指令将下拉选择与数据进行双向绑定,实现选择值的获取和设置。 4. 事件处理:可以使用`@change`事件来监听下拉选择的值变化,从而执行相应的逻辑操作。 下面是一个示例代码,展示了如何在UniApp中创建一个简单的下拉选择: ```html <template> <view> <select v-model="selectedValue" @change="handleChange"> <option value="option1">选项1</option> <option value="option2">选项2</option> <option value="option3">选项3</option> </select> <text>选择的值:{{ selectedValue }}</text> </view> </template> <script> export default { data() { return { selectedValue: 'option1' }; }, methods: { handleChange(event) { console.log('选择的值:', event.target.value); } } }; </script> ``` 在上述示例中,通过`v-model`指令将`selectedValue`与下拉选择进行双向绑定,选中的值会自动更新到`selectedValue`中。同时,通过`@change`事件监听下拉选择的值变化,当值发生变化时,会触发`handleChange`方法,并打印选择的值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值