ng-options和ng-checked在表单中的高级运用(推荐)


Posted in Javascript onJanuary 21, 2017

AngularJS是当前非常的流行的前端框架,它的语法糖非常多,也极大的方便了前端开发者,但是有着用法还是需要去琢磨一下的。

ng-options

在select表单控件中,总结一下目前的几种写法。

普通写法

<select>
  <option value="test1">test1</option>
  <option value="test1">test1</option>
  <option value="test1">test1</option>
  <option value="test1">test1</option>
</select>

优点:简单

缺点:

  • 代码很不简洁,如果选项较多就会很乱
  • 不方便渲染,如果option在变需要使用js动态加载
  • 不方便存储对象

使用ng-repeat

ng-repeat是angularJS中非常强大的一个directive,在渲染列表上极大的方便了前端开发者,那么由于有多个重复的option,当然可以使用ng-repeat,用法如下:

<select>
  <option ng-repeat="option in options" value="{{option}}">{{option.name}}</option>
</select>
<script>
  $scope.options = [{id:1,name:'test1'},{id:2,name:'test2'},{id:3,name:'test3'}];
</scirpt>

优点:

  • 代码简介
  • 可存储对象,取值方便

缺点:

  • 没有默认显示!,在有些界面需求中,select可能是需要placeholder一样的显示提示效果的,那么使用这个方式显示效果默认是空白
  • 无法通过ng-model来获取当前选择的值

使用ng-options

这里使用一个年级、班级的选项来作为例子:即选择年级之后再显示对应的可选班级。

<select ng-model="modal.grade" ng-change="modalChangeGrade()" ng-options="grade.gradeText for grade in modal.grades">
  <option value="" disabled>请选择</option>
</select>
<script>
  $scope.modal.grades = [
  {id:1,gradeText:'初一',classes:[]},
  {id:2,gradeText:'初二',classes:[]},
  {id:3,gradeText:'高一'},classes:[]];
  $scope.modalChangeGrade = function(){
    //班级的HTML片段就不在这里写了
    $scope.modal.classes = $scope.modal.grade.classes;
  }
</scirpt>

注:

“请选择"的option需要有value,不然会报错

如果要设置默认选择值,比如一开始就选择"高一",则需要设置modal在数组里的对象。

$scope.modal.grade = $scope.modal.grades[2];//高一在数组的位置角标为2

优点:

  • 代码简洁,易于维护
  • 有默认显示
  • 可以使用ng-modal准确获取当前选择的对象

ng-checked

checkbox和radio是我们经常使用到的表单组件,那么如何使用angularJs简洁方便的获取当前已选择对象呢?

这里只说angularJs的用法:

下面依然以年级和班级为例:

<div ng-repeat="class in grade.classes" ng-click="class.is_checked=!class.is_checked">
  <input type="checkbox" value="" ng-checked="class.is_checked">
  {{class.id+'班'}}
</div>

最后需要查看有哪些checkbox被选中时,只需要遍历$scope.grade.classes数组查看有哪些对象的is_checked属性为true即可。

radio的用法同理。

以上所述是小编给大家介绍的ng-options和ng-checked在表单中的高级运用,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
SUN的《AJAX与J2EE》全文译了
Feb 23 Javascript
FireFox与IE 下js兼容触发click事件的代码
Nov 20 Javascript
JavaScript 在线压缩和格式化收藏
Jan 16 Javascript
Js参数值中含有单引号或双引号问题的解决方法
Nov 06 Javascript
jquery常用特效方法使用示例
Apr 25 Javascript
js获取当前页面的url网址信息
Jun 12 Javascript
JavaScript的React框架中的JSX语法学习入门教程
Mar 05 Javascript
JQuery和PHP结合实现动态进度条上传显示
Nov 23 Javascript
JS高级运动实例分析
Dec 20 Javascript
原生js实现倒计时功能(多种格式调用)
Jan 12 Javascript
Vue通过input筛选数据
Oct 26 Javascript
微信小程序的生命周期的详解
Oct 19 Javascript
vue实现添加标签demo示例代码
Jan 21 #Javascript
微信小程序 数据交互与渲染实例详解
Jan 21 #Javascript
前端编码规范(3)JavaScript 开发规范
Jan 21 #Javascript
Bootstrap框架安装使用详解
Jan 21 #Javascript
AngularJS ng-repeat指令中使用track by子语句解决重复数据遍历错误问题
Jan 21 #Javascript
微信小程序 九宫格实例代码
Jan 21 #Javascript
AngularJS的ng-repeat指令与scope继承关系实例详解
Jan 21 #Javascript
You might like
PHP 和 MySQL 开发的 8 个技巧
2007/01/02 PHP
从刷票了解获得客户端IP的方法
2015/09/21 PHP
javascript 写类方式之六
2009/07/05 Javascript
jquery怎样实现ajax联动框(一)
2013/03/08 Javascript
jquery 添加节点的几种方法介绍
2013/09/04 Javascript
jQuery如何获取同一个类标签的所有值(默认无法获取)
2014/09/25 Javascript
node.js中的fs.realpath方法使用说明
2014/12/16 Javascript
JavaScript获取function所有参数名的方法
2015/10/30 Javascript
js中字符串编码函数escape()、encodeURI()、encodeURIComponent()区别详解
2016/04/01 Javascript
一些实用性较高的js方法
2016/04/19 Javascript
使用ionic在首页新闻中应用到的跑马灯效果的实现方法
2017/02/13 Javascript
浅谈webpack对样式的处理
2018/01/05 Javascript
JavaScript获取用户所在城市及地理位置
2018/04/21 Javascript
详解VUE自定义组件中用.sync修饰符与v-model的区别
2018/06/26 Javascript
vue的滚动条插件实现代码
2019/09/07 Javascript
使用vue实现一个电子签名组件的示例代码
2020/01/06 Javascript
Element Collapse 折叠面板的使用方法
2020/07/26 Javascript
在vant 中使用cell组件 定义图标该图片和位置操作
2020/11/02 Javascript
python 遍历目录(包括子目录)下所有文件的实例
2018/07/11 Python
Python3+OpenCV2实现图像的几何变换(平移、镜像、缩放、旋转、仿射)
2019/05/13 Python
django框架基于模板 生成 excel(xls) 文件操作示例
2019/06/19 Python
python爬虫 爬取58同城上所有城市的租房信息详解
2019/07/30 Python
python实现文件批量编码转换及注意事项
2019/10/14 Python
HTML中fieldset标签概述及使用方法
2013/02/01 HTML / CSS
芬兰灯具网上商店:Nettilamppu.fi
2018/06/30 全球购物
美国和加拿大计算机和电子产品购物网站:TigerDirect.com
2019/09/13 全球购物
美国户外烹饪产品购物网站:Outdoor Cooking
2020/01/10 全球购物
股权转让意向书
2014/04/01 职场文书
小学生竞选班干部演讲稿
2014/04/24 职场文书
党的群众路线教育实践活动整改落实情况自查报告
2014/10/28 职场文书
民事二审代理词
2015/05/25 职场文书
保护环境建议书作文400字
2015/09/14 职场文书
高三数学复习备考教学反思
2016/02/18 职场文书
2019安全宣传标语大全
2019/08/14 职场文书
virtualenv隔离Python环境的问题解析
2022/06/21 Python
mysql通过group by分组取最大时间对应数据的两种有效方法
2022/09/23 MySQL