本次做一个简单的关于动态生成select的练习

  在实现上有两种方式:

    其一、通过ng-repeat来实现

    其二、通过ng-option来实现

    在页面效果上,两种实现的效果都一样

    但是在数据选择的数据从操作上有所不同

    ng-repeat选中的是其option对应的value值

    ng-option选择的是其对应绑定数据的一个object对象

  在实际应用中建议采用ng-option实现

  代码实例:

    

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
</head>
<body ng-app="myApp">
<div ng-controller="CityController">
<div style="margin-bottom: 40px;">
<h1>通过ng-options实现</h1>
<select ng-model="city" id="selectCity1"
ng-options="city1.name for city1 in cities">
<option value="">请选择</option>
</select>
所选择的城市信息: {{ city }}
</div>
<div style="margin-bottom: 40px;">
<h1>通过ng-repeat实现</h1>
<select ng-model="city2" id="selectCity2">
<option value="" selected="selected">请选择</option>
<option ng-repeat="city in cities" value="{{city.id}}">{{city.name}}</option>
</select>
所选择的城市ID: {{ city2 }}
</div>
<div>
<input type="text" ng-model="newCityName" placeholder="请输入新增城市的名称" />
<input type="button" ng-click="addCity()" value="新增城市" />
</div>
</div>
</body>
</html>
<script src="../JS/angular.js"></script>
<script type="text/javascript">
var app = angular.module("myApp", []);
app.controller("CityController", function ($scope) {
//// 初始化城市数据
$scope.cities = [
{ name: '成都', id: 1 },
{ name: '南充', id: 2 },
{ name: '绵阳', id: 3 },
{ name: '达州', id: 4 },
{ name: '泸州', id: 5 }
]; //// 新增一个城市信息
$scope.addCity = function () {
if ($scope.newCityName) {
$scope.cities.push({ name: $scope.newCityName, id: $scope.getCityMaxId() + 1 });
}
} //// 获取已有城市列表中城市ID最大值
$scope.getCityMaxId = function () {
var cityIdArry = new Array();
for (var i in $scope.cities) {
cityIdArry.push($scope.cities[i].id);
}
cityIdArry.sort(function (num1, num2) {
return num1 - num2;
});
return cityIdArry[cityIdArry.length - 1];
};
});
</script>

angularjs小练习(分别通过ng-repeat和ng-option动态生成select下拉框)的更多相关文章

  1. 将select的默认小三角替换成别的图片,且实现点击图片出现下拉框选择option

    最近做项目,要求修改select下拉框的默认三角样式,因为它在不同浏览器的样式不同且有点丑,找找网上也没什么详细修改方法,我就总结一下自己的吧. 目标是做成下图效果: 图一:将默认小三角换成红圈的三角 ...

  2. 【经验】angularjs 实现带查找筛选功能的select下拉框

    一.背景 对于select的下拉列表,像国家选择这样的功能,全世界那么多国家,一直拉滚动条多辛苦,眼睛也要盯着找,累!so,为优化用户体验,带查找功能的下拉框是非常非常有必要的.都知道jquery里有 ...

  3. 微信小程序手动实现select下拉框选择

    在小程序中没有像h5中的下拉 标签的 picker又满足部了,那就自己动手写 <view class='list-msg'> <view class='list-msg1'> ...

  4. 微信小程序 select 下拉框组件

    一.源码地址 https://github.com/imxiaoer/WeChatMiniSelect 二.效果图 录屏图片质量较差,所以大家会看到残影(捂脸) 三.组件源码 1. select.wx ...

  5. select下拉框小DemoA

    <html> <head> <meta charset="utf-8"> <script src="jquery-1.9.1.m ...

  6. iview select下拉框的蜜汁小坑

    前言 最近使用iview的select下拉选择器,遇到一个很神奇的问题:选中下拉框里面的一个值,但是再去点下拉框的时候就只剩刚才选中的数据了.感觉应该是插件把刚才选中的数据当做的搜索条件,所以需要做的 ...

  7. angularJS select下拉框检测改变

    html:(已引入amazeUI) <div style="width:70px;display:inline-block;"> <form class=&quo ...

  8. table样式的下拉框(angularjs)

    前言 虽然使用的技术比较老了,但是思想却还是适用于现在的vue等框架. 一:实现的样式 二:实现包括的功能点 1:下拉框内容是表格,类似于一个弹窗 表格内容最多六行,超出的显示滚动条,表头固定,可滚动 ...

  9. angularjs select下拉搜索框

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

随机推荐

  1. Ubuntu 利用 crontab 和 notify-send 定时发送桌面通知,提示该休息啦

    [经测试,每隔多少分钟执行并不像自己想象的一样] 比如:每隔50分钟执行一次提醒      */50 * * * * export DISPLAY=:0.0; notify-send -i /home ...

  2. EF6 学习笔记(二):操练 CRUD 增删改查

    EF6学习笔记总目录 ASP.NET MVC5 及 EF6 学习笔记 - (目录整理) 接上篇: EF6 学习笔记(一):Code First 方式生成数据库及初始化数据库实际操作 本篇原文链接: I ...

  3. 美团2018年CodeM大赛-初赛B轮 C题低位值

    试题链接:https://www.nowcoder.com/acm/contest/151/C 定义lowbit(x) =x&(-x),即2^(p-1) (其中p为x的二进制表示中,从右向左数 ...

  4. css3 动画与display:none冲突的解决方案

    概述 css不能在display:none和display:block之间进行动画,并且也不能在height:0和height:auto之间进行动画.这里我研究了一下在display:none和dis ...

  5. Swift5 语言指南(八) 函数

    函数是执行特定任务的自包含代码块.您为函数指定了一个标识其功能的名称,此名称用于“调用”函数以在需要时执行其任务. Swift的统一函数语法足够灵活,可以表达从没有参数名称的简单C风格函数到具有每个参 ...

  6. [译]ElasticSearch vs. Solr

    在Gen2产品的早期阶段, 我们事实上是失败的, 这促使我们重新审视我们现有的技术栈. 我们仔细分析系统中的每个独立的组件,并记录下来, 当然其中也包括构成我们核心功能的搜索引擎技术. 在我们的通用日 ...

  7. Dispatch Queue 内存结构

    Dispatch 源代码版本是libdispatch-84.5.5  会根据这个结构来分析dispatch_queue 对应的代码实现 参考 GCD源码分析3 -- dispatch_queue篇 ...

  8. thinkpad的E480安装ubuntu后wifi无法使用问题解决

    买了新电脑,安装ubuntu新系统之后,遇到了一个比较麻烦的问题,在ubuntu中,无法使用wifi. 用新产品就是要当小白鼠啊,查了一下资料,发现这个使用的rtl8821ce的wifi芯片,该wif ...

  9. [宏]preempt_disable

    //include/linux/preempt.h #ifdef CONFIG_PREEMPT_COUNT //如果内核支持抢占 do { \ inc_preempt_count(); \ barri ...

  10. Python函数——列表推导式、生成器与迭代器

    列表推导式 产生背景 现在有个需求,看列表[0, 1, 2, 3, 4, 5, 6, 7, 8, 9],要求你把列表里的每个值加1,你怎么实现? 第一种方法: a = [1,3,4,6,7,7,8,9 ...