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 相关文章推荐
JavaScript 特殊字符
Apr 05 Javascript
event.srcElement 用法笔记e.target
Dec 18 Javascript
node.js中的forEach()是同步还是异步呢
Jan 29 Javascript
jQuery查找节点并获取节点属性的方法
Sep 09 Javascript
Vuejs入门教程之Vue生命周期,数据,手动挂载,指令,过滤器
Apr 19 Javascript
详解JS中的this、apply、call、bind(经典面试题)
Sep 19 Javascript
浅谈使用React.setState需要注意的三点
Dec 18 Javascript
基于cropper.js封装vue实现在线图片裁剪组件功能
Mar 01 Javascript
JS使用Date对象实时显示当前系统时间简单示例
Aug 23 Javascript
vue单页应用的内存泄露定位和修复问题小结
Aug 02 Javascript
解决vue项目中某一页面不想引用公共组件app.vue的问题
Aug 14 Javascript
vue中路由跳转不计入history的操作
Sep 21 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
php.ini-dist 和 php.ini-recommended 的区别介绍(方便开发与安全的朋友)
2012/07/01 PHP
简单了解PHP编程中数组的指针的使用
2015/11/30 PHP
javascript 异步页面查询实现代码(asp.net)
2010/05/26 Javascript
简单的邮箱登陆的提示效果类似于yahoo邮箱
2014/02/26 Javascript
基于jQuery通过jQuery.form.js插件使用ajax提交form表单
2015/08/17 Javascript
浅谈js数据类型判断与数组判断
2016/08/29 Javascript
JS禁止查看网页源代码的实现方法
2016/10/12 Javascript
js实现固定宽高滑动轮播图效果
2017/01/13 Javascript
angularJS 发起$http.post和$http.get请求的实现方法
2017/05/18 Javascript
js实现从左向右滑动式轮播图效果
2017/07/07 Javascript
vue 引入公共css文件的简单方法(推荐)
2018/01/20 Javascript
JavaScript中的垃圾回收与内存泄漏示例详解
2019/05/02 Javascript
AngularJS动态生成select下拉框的方法实例
2019/11/17 Javascript
javascript设计模式 ? 状态模式原理与用法实例分析
2020/04/22 Javascript
python中list循环语句用法实例
2014/11/10 Python
python代码 if not x: 和 if x is not None: 和 if not x is None:使用介绍
2016/09/21 Python
python 查找字符串是否存在实例详解
2017/01/20 Python
python中OrderedDict的使用方法详解
2017/05/05 Python
解决python matplotlib imshow无法显示的问题
2018/05/24 Python
在Pandas中给多层索引降级的方法
2018/11/16 Python
IDLE下Python文件编辑和运行操作
2020/04/25 Python
什么是python的必选参数
2020/06/21 Python
Pycharm自动添加文件头注释和函数注释参数的方法
2020/10/23 Python
发现两个有趣的CSS3动画效果
2013/08/14 HTML / CSS
浅析border-radius如何兼容IE
2016/04/19 HTML / CSS
英国家庭家具、照明和花园家具购物网站:Furniture123
2018/12/31 全球购物
高二化学教学反思
2014/01/30 职场文书
县级领导干部开展党的群众路线教育实践活动工作汇报
2014/10/25 职场文书
募捐感谢信
2015/01/22 职场文书
法人身份证明书
2015/06/18 职场文书
企业财务管理制度范本
2015/08/04 职场文书
JS + HTML 罗盘式时钟的实现
2021/05/21 Javascript
Java如何实现树的同构?
2021/06/22 Java/Android
python flappy bird小游戏分步实现流程
2022/02/15 Python
JavaWeb Servlet开发注册页面实例
2022/04/11 Java/Android
Python安装使用Scrapy框架
2022/04/12 Python