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 编程笔记 无名函数
Jun 28 Javascript
情人节之礼 js项链效果
Feb 13 Javascript
开发 Internet Explorer 右键功能表(ContextMenu)
Jul 03 Javascript
ArtEditor富文本编辑器增加表单提交功能
Apr 18 Javascript
javascript比较语义化版本号的实现代码
Sep 09 Javascript
基于Bootstrap和jQuery构建前端分页工具实例代码
Nov 23 Javascript
react redux入门示例
Apr 19 Javascript
一个简单的node.js界面实现方法
Jun 01 Javascript
vue 基于element-ui 分页组件封装的实例代码
Dec 10 Javascript
构建大型 Vue.js 项目的10条建议(小结)
Nov 14 Javascript
js面试题之异步问题的深入理解
Sep 20 Javascript
vue使用过滤器格式化日期
Jan 20 Vue.js
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
DEDE采集大师官方留后门的删除办法
2011/01/08 PHP
PHP中数组合并的两种方法及区别介绍
2012/09/14 PHP
CI框架源码阅读,系统常量文件constants.php的配置
2013/02/28 PHP
php使用gettimeofday函数返回当前时间并存放在关联数组里
2015/03/19 PHP
PHP中$_SERVER使用说明
2015/07/05 PHP
使用PHP uniqid函数生成唯一ID
2015/11/18 PHP
PHP基于Closure类创建匿名函数的方法详解
2017/08/17 PHP
php封装db类连接sqlite3数据库的方法实例
2017/12/19 PHP
php实现的顺序线性表示例
2019/05/04 PHP
获取页面高度,窗口高度,滚动条高度等参数值getPageSize,getPageScroll
2006/09/22 Javascript
JS+CSS实现实用的单击输入框弹出选择框的方法
2015/02/28 Javascript
js实现简单的联动菜单效果
2015/08/19 Javascript
jQuery实现动态表单验证时文本框抖动效果完整实例
2015/08/21 Javascript
跟我学习javascript的浮点数精度
2015/11/16 Javascript
jQuery使用$.ajax进行异步刷新的方法(附demo下载)
2015/12/04 Javascript
利用AngularJs实现京东首页轮播图效果
2016/09/08 Javascript
JS触摸屏网页版仿app弹窗型滚动列表选择器/日期选择器
2016/10/30 Javascript
jQuery设置图片等比例缩小的方法
2017/04/29 jQuery
angular学习之从零搭建一个angular4.0项目
2017/07/10 Javascript
vue-infinite-loading2.0 中文文档详解
2018/04/08 Javascript
详解webpack运行Babel教程
2018/06/13 Javascript
小程序websocket心跳库(websocket-heartbeat-miniprogram)
2020/02/23 Javascript
javascript实现随机抽奖功能
2020/12/30 Javascript
使用scrapy实现爬网站例子和实现网络爬虫(蜘蛛)的步骤
2014/01/23 Python
使用Python制作获取网站目录的图形化程序
2015/05/04 Python
python类和函数中使用静态变量的方法
2015/05/09 Python
Python中几种导入模块的方式总结
2017/04/27 Python
Python+pyplot绘制带文本标注的柱状图方法
2019/07/08 Python
python实现超市商品销售管理系统
2019/11/22 Python
keras中的卷积层&amp;池化层的用法
2020/05/22 Python
使用Python爬取Json数据的示例代码
2020/12/07 Python
使用CSS禁止textarea调整大小功能的方法
2015/03/13 HTML / CSS
Nisbets爱尔兰:英国最大的厨房和餐饮设备供应商
2019/01/26 全球购物
新西兰优惠网站:Treat Me
2019/07/04 全球购物
推荐信格式要求
2014/05/09 职场文书
蓝牙耳机怎么连接电脑win11? Win11蓝牙耳机连接电脑的技巧
2023/01/09 数码科技