angularjs下拉框空白的解决办法


Posted in Javascript onJune 20, 2017

搜索angularjs下拉框空白,可以出现很多解决方案,但是对于静态字段来说,网上目前还没有找到解决方案,如下:

<select class="form-control" ng-model="UserState"
  ng-init="UserState=0">
 <option value="-1">选择状态</option>
 <option value="0">在职</option>
 <option value="1">离职</option>

 </select>

如果要按照网上的方法来解决,首先需要把下拉选项存放到一个对象数组当中,对于一个两个下拉框还好说,如果项目当中有很多这种下拉框,就要费好大劲了。最简单粗暴的方法是修改angularjs源代码,不再生成空白符。奈何功力有限,未能找到相应添加空白行的地方,不过值得欣慰的是,发现出现空白符是因为使用了ng-model的原因,干脆写个指令来替代ng-model的功能也可以解决下拉空白的问题,于是写了一个指令:

app.directive("dModel",function () {
  return {
   restrict:'A',
   compile:function(element, attrs, transclude){
    console.log(transclude);
    var dModel=attrs["dModel"];
    return{
     pre:function(scope, iElement, iAttrs){

      var selectValue=scope[dModel]+"";
      if(selectValue)
      {
       var options=element.children();
       for(var i=0;i<options.length;i++)
       {
        if(selectValue==options[i].value)
        {
         options[i].setAttribute("selected",true);
         break;
        }
       }
      }
     },
     post:function(scope, iElement, iAttrs){
      element.on("change",function () {
       var selectValue=this.value;
       scope.$apply(function () {
        scope[dModel]= selectValue;
       });
      })
     }
    }
   }

  }
 });

用该指令替代ng-model即可实现相同的功能,同时不会出现下拉空白,当然,这个指令毕竟是自己随便写的几行代码,远远不如ng-model强大,比如动态修改指令绑定的值来改变选中项还不能实现,仅仅可以在第一次初始化时绑定选中项,另外也不支持ng-selected。如果读者有兴趣,可以自己实现后续的功能,对于我来说,已经可以满足需要了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery EasyUI NumberBox(数字框)的用法
Jul 08 Javascript
js字符串转换成数字与数字转换成字符串的实现方法
Jan 08 Javascript
jquery库或JS文件在eclipse下报错问题解决方法
Apr 17 Javascript
js拼接html注意问题示例探讨
Jul 14 Javascript
Jquery实现图片预加载与延时加载的方法
Dec 22 Javascript
原生js实现的贪吃蛇网页版游戏完整实例
May 18 Javascript
关于JSON.parse(),JSON.stringify(),jQuery.parseJSON()的用法
Jun 30 Javascript
less简单入门(CSS 预处理语言)
Mar 08 Javascript
使用Fullpage插件快速开发整屏翻页的页面
Sep 13 Javascript
JS实现的获取银行卡号归属地及银行卡类型操作示例
Jan 08 Javascript
微信小程序实现一张或多张图片上传(云开发)
Sep 25 Javascript
vue 解决IOS10低版本白屏的问题
Nov 17 Javascript
JS使用ActiveXObject实现用户提交表单时屏蔽敏感词功能
Jun 20 #Javascript
20行js代码实现的贪吃蛇小游戏
Jun 20 #Javascript
详解vue-resource promise兼容性问题
Jun 20 #Javascript
ionic2自定义cordova插件开发以及使用(Android)
Jun 19 #Javascript
详解vue2.0 transition 多个元素嵌套使用过渡
Jun 19 #Javascript
vue中如何实现变量和字符串拼接
Jun 19 #Javascript
js实现随机数字字母验证码
Jun 19 #Javascript
You might like
ThinkPHP3.2.2的插件控制器功能简述
2014/07/09 PHP
PHP连接access数据库
2015/03/27 PHP
WIN8.1下搭建PHP5.6环境
2015/04/29 PHP
使用PHP实现微信摇一摇周边红包
2016/01/04 PHP
SCP远程VPS快速搬家和WDCP升级php5.3安装memcached和eaccelerator教程
2017/07/27 PHP
extjs grid取到数据而不显示的解决
2008/12/29 Javascript
js 一个关于图片onload加载的事
2013/11/10 Javascript
基于js实现微信发送好友如何分享到朋友圈、微博
2015/11/30 Javascript
NodeJS实现阿里大鱼短信通知发送
2016/01/17 NodeJs
jQuery+CSS3文字跑马灯特效的简单实现
2016/06/25 Javascript
学习掌握JavaScript中this的使用技巧
2016/08/29 Javascript
Bootstrap Img 图片样式(推荐)
2016/12/13 Javascript
vue双向绑定简要分析
2017/03/23 Javascript
JavaScript实现经纬度转换成地址功能
2017/03/28 Javascript
原生JS实现多个小球碰撞反弹效果示例
2018/01/31 Javascript
JS实现的透明度渐变动画效果示例
2018/04/28 Javascript
jQuery 实现批量提交表格多行数据的方法
2018/08/09 jQuery
vue 之 css module的使用方法
2018/12/04 Javascript
微信小程序云开发实现数据添加、查询和分页
2019/05/17 Javascript
vue封装swiper代码实例解析
2019/10/08 Javascript
[42:00]完美世界DOTA2联赛PWL S3 Phoenix vs INK ICE 第一场 12.13
2020/12/17 DOTA
PYTHON正则表达式 re模块使用说明
2011/05/19 Python
Python实现获取网站PR及百度权重
2015/01/21 Python
使用Python的web.py框架实现类似Django的ORM查询的教程
2015/05/02 Python
python中in在list和dict中查找效率的对比分析
2018/05/04 Python
在python3中使用shuffle函数要注意的地方
2020/02/28 Python
如何在scrapy中集成selenium爬取网页的方法
2020/11/18 Python
html svg生成环形进度条的实现方法
2019/09/23 HTML / CSS
在线课程:Skillshare
2019/04/02 全球购物
JDK安装目录下有哪些内容
2014/08/25 面试题
2014学习优秀共产党员先进事迹思想汇报
2014/09/14 职场文书
村干部群众路线整改措施思想汇报
2014/10/12 职场文书
个人存款证明书
2014/10/18 职场文书
工程部部长岗位职责
2015/02/12 职场文书
2015社区健康教育工作总结
2015/05/20 职场文书
SpringBoot实现quartz定时任务可视化管理功能
2021/08/30 Java/Android