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 相关文章推荐
js 操作css实现代码
Jun 11 Javascript
javascript实现在下拉列表中显示多级树形菜单的方法
Aug 12 Javascript
简单实现限制uploadify上传个数
Nov 16 Javascript
AngularJS模块详解及示例代码
Aug 17 Javascript
jquery操作select取值赋值与设置选中实例
Feb 28 Javascript
Javascript前端经典的面试题及答案
Mar 14 Javascript
Vue响应式原理详解
Apr 18 Javascript
JS实现DOM删除节点操作示例
Apr 04 Javascript
在vue中读取本地Json文件的方法
Sep 06 Javascript
详解webpack-dev-middleware 源码解读
Mar 23 Javascript
VueCli4项目配置反向代理proxy的方法步骤
May 17 Javascript
JavaScript实现跟随鼠标移动的盒子
Jan 28 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
《Pokemon Sword·Shield》系列WEB动画《薄明之翼》第2话声优阵容公开!
2020/03/06 日漫
PHP和javascript常用正则表达式及用法实例
2014/07/01 PHP
PHP CURL 多线程操作代码实例
2015/05/13 PHP
PHP如何将log信息写入服务器中的log文件
2015/07/29 PHP
PHP通过bypass disable functions执行系统命令的方法汇总
2018/05/02 PHP
PHP+redis实现微博的推模型案例分析
2019/07/10 PHP
JavaScript Event学习第三章 早期的事件处理程序
2010/02/07 Javascript
解决JS中乘法的浮点错误的方法
2014/01/03 Javascript
js打造数组转json函数
2015/01/14 Javascript
浅谈javascript原型链与继承
2015/07/13 Javascript
如何解决ligerUI布局时Center中的Tab高度大小
2015/11/24 Javascript
详解Node.js包的工程目录与NPM包管理器的使用
2016/02/16 Javascript
仅9张思维导图帮你轻松学习Javascript 就这么简单
2016/06/01 Javascript
JS简单获取当前日期和农历日期的方法
2017/04/17 Javascript
angular4实现tab栏切换的方法示例
2017/10/21 Javascript
layer关闭当前窗口页面以及确认取消按钮的方法
2019/09/09 Javascript
Vue 一键清空表单的实现方法
2020/02/07 Javascript
python完成FizzBuzzWhizz问题(拉勾网面试题)示例
2014/05/05 Python
视觉直观感受若干常用排序算法
2017/04/13 Python
python 中的list和array的不同之处及转换问题
2018/03/13 Python
使用Python处理Excel表格的简单方法
2018/06/07 Python
Python离线安装PIL 模块的方法
2019/01/08 Python
python利用re,bs4,requests模块获取股票数据
2019/07/29 Python
python实现12306登录并保存cookie的方法示例
2019/12/17 Python
Python使用psutil获取进程信息的例子
2019/12/17 Python
Python3 利用face_recognition实现人脸识别的方法
2020/03/13 Python
python实现单张图像拼接与批量图片拼接
2020/03/23 Python
python数据库编程 Mysql实现通讯录
2020/03/27 Python
Django创建一个后台的基本步骤记录
2020/10/02 Python
HTML5 placeholder属性详解
2016/06/22 HTML / CSS
什么是会话Bean
2015/05/14 面试题
程序员跳槽必看面试题总结
2013/06/28 面试题
委托协议书范本
2014/04/22 职场文书
2014年创先争优活动总结
2014/05/04 职场文书
高中体育课教学反思
2016/02/16 职场文书
Python实现简单的俄罗斯方块游戏
2021/09/25 Python