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 相关文章推荐
jquery ajax 登录验证实现代码
Sep 23 Javascript
javascript判断并获取注册表中可信任站点的方法
Jun 01 Javascript
优化RequireJS项目的相关技巧总结
Jul 01 Javascript
Ext JS动态加载JavaScript创建窗体的方法
Jun 23 Javascript
JavaScript数据存储 Cookie篇
Jul 02 Javascript
前端弹出对话框 js实现ajax交互
Sep 09 Javascript
React组件内事件传参实现tab切换的示例代码
Jul 04 Javascript
js canvas画布实现高斯模糊效果
Nov 27 Javascript
微信小程序与webview交互实现支付功能
Jun 07 Javascript
JS工厂模式开发实践案例分析
Oct 17 Javascript
JavaScript复制变量三种方法实例详解
Jan 09 Javascript
vue element-ul实现展开和收起功能的实例代码
Nov 25 Vue.js
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+APACHE实现用户论证的方法
2006/10/09 PHP
同台服务器使用缓存APC效率高于Memcached的演示代码
2010/02/16 PHP
php语言流程控制中的主动与被动
2012/11/05 PHP
PHP CodeIgniter框架的工作原理研究
2015/03/30 PHP
php中的异常和错误浅析
2017/05/03 PHP
php注册审核重点解析(数据访问)
2017/05/23 PHP
laravel-admin表单提交隐藏一些数据,回调时获取数据的方法
2019/10/08 PHP
js显示时间 js显示最后修改时间
2013/01/02 Javascript
js判断上传文件类型判断FileUpload文件类型代码
2014/05/20 Javascript
JavaScript function 的 length 属性使用介绍
2014/09/15 Javascript
JS扩展方法实例分析
2015/04/15 Javascript
Bootstrap 组件之按钮(二)
2016/05/11 Javascript
微信小程序 框架详解及实例应用
2016/09/26 Javascript
基于layer.js实现收货地址弹框选择然后返回相应的地址信息
2017/05/26 Javascript
AngularJS ng-repeat指令及Ajax的应用实例分析
2017/07/06 Javascript
AngularJS中使用three.js的实例详解
2017/07/21 Javascript
微信小程序中post方法与get方法的封装
2017/09/26 Javascript
Vue的实例、生命周期与Vue脚手架(vue-cli)实例详解
2017/12/27 Javascript
Vue 监听列表item渲染事件方法
2018/09/06 Javascript
[06:10]6.81新信使新套装!给你一个炫酷的DOTA2
2014/05/06 DOTA
python实现端口转发器的方法
2015/03/13 Python
Python自定义scrapy中间模块避免重复采集的方法
2015/04/07 Python
python调用java模块SmartXLS和jpype修改excel文件的方法
2015/04/28 Python
Python3实现转换Image图片格式
2018/06/21 Python
使用python将多个excel文件合并到同一个文件的方法
2019/07/09 Python
python3 webp转gif格式的实现示例
2019/12/10 Python
Python集合操作方法详解
2020/02/09 Python
python模拟点击在ios中实现的实例讲解
2020/11/26 Python
后勤采购员岗位职责
2013/12/19 职场文书
交通安全演讲稿
2014/01/07 职场文书
情侣吵架检讨书
2014/02/05 职场文书
新员工试用期自我鉴定
2014/04/17 职场文书
学习十八大标语
2014/10/09 职场文书
给老婆的检讨书1000字
2015/01/01 职场文书
《扇形统计图》教学反思
2016/02/17 职场文书
python xlwt模块的使用解析
2021/04/13 Python