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 相关文章推荐
javasctipt如何显示几分钟前、几天前等
Apr 30 Javascript
Javascript遍历table中的元素示例代码
Jul 08 Javascript
jquery获取选中的文本和值的方法
Jul 08 Javascript
JavaScript Function函数类型介绍
Apr 08 Javascript
JavaScript中Function()函数的使用教程
Jun 04 Javascript
javascript:void(0)是什么意思及href=#与href=javascriptvoid(0)的区别
Nov 13 Javascript
javascript实现动态统计图开发实例
Nov 21 Javascript
JS实现n秒后自动跳转的两种方法
Nov 30 Javascript
vue.js选中动态绑定的radio的指定项
Jun 02 Javascript
JS实现textarea通过换行或者回车把多行数字分割成数组并且去掉数组中空的值
Oct 29 Javascript
详解Vue+ElementUI从零开始搭建自己的网站(一、环境搭建)
Apr 30 Javascript
使用vuex存储用户信息到localStorage的实例
Nov 11 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 CURL模拟GET及POST函数代码
2010/04/25 PHP
第六章 php目录与文件操作
2011/12/30 PHP
php实现微信公众号无限群发
2015/10/11 PHP
laravel7学习之无限级分类的最新实现方法
2020/09/30 PHP
location.href 在IE6中不跳转的解决方法与推荐使用代码
2010/07/08 Javascript
jquery实现漂浮在网页右侧的qq在线客服插件示例
2013/05/13 Javascript
解析jQuery的三种bind/One/Live事件绑定使用方法
2013/12/30 Javascript
解决Jquery鼠标经过不停滑动的问题
2014/03/03 Javascript
用jquery实现动画跳到顶部和底部(这个比较简单)
2014/09/01 Javascript
javascript jquery对form元素的常见操作详解
2016/06/12 Javascript
jquery append与appendTo方法比较
2017/05/24 jQuery
jQuery 1.9版本以上的浏览器判断方法代码分享
2017/08/28 jQuery
EasyUI创建人员树的实例代码
2017/09/15 Javascript
bootstrap table实现双击可编辑、添加、删除行功能
2017/09/27 Javascript
node使用Koa2搭建web项目的方法
2017/10/17 Javascript
一文搞懂ES6中的Map和Set
2019/05/20 Javascript
Angular6项目打包优化的实现方法
2019/12/15 Javascript
js实现直播点击飘心效果
2020/08/19 Javascript
解决vuex刷新数据消失问题
2020/11/12 Javascript
Python内置函数OCT详解
2016/11/09 Python
对Python w和w+权限的区别详解
2019/01/23 Python
通过python改变图片特定区域的颜色详解
2019/07/15 Python
使用python telnetlib批量备份交换机配置的方法
2019/07/25 Python
python如何使用Redis构建分布式锁
2020/01/16 Python
如何在Django中使用聚合的实现示例
2020/03/23 Python
python 异步async库的使用说明
2020/05/04 Python
html5+css3进度条倒计时动画特效代码【推荐】
2016/03/08 HTML / CSS
澳大利亚领先的在线机械五金、园艺和存储专家:Edisons
2018/03/24 全球购物
编辑求职信样本
2013/12/16 职场文书
前台接待员岗位职责
2014/01/02 职场文书
病人家属写给医院的感谢信
2015/01/23 职场文书
画展邀请函
2015/01/31 职场文书
2016年“5.12”护士节慰问信
2015/11/30 职场文书
《蟋蟀的住宅》教学反思
2016/02/17 职场文书
导游词之茶卡盐湖
2019/11/26 职场文书
Nginx防盗链与服务优化配置的全过程
2022/01/18 Servers