angularjs下拉框空白的解决办法

 更新时间:2022年03月25日 16:45:35   作者:大朋展翅  
这篇文章主要为大家详细介绍了angularjs下拉框空白的解决方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

搜索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。如果读者有兴趣,可以自己实现后续的功能,对于我来说,已经可以满足需要了。

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

相关文章

  • 详解Angular-ui-BootStrap组件的解释以及使用

    详解Angular-ui-BootStrap组件的解释以及使用

    这篇文章主要介绍了详解Angular-ui-BootStrap组件的解释以及使用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-07-07
  • Angular2数据绑定详解

    Angular2数据绑定详解

    本篇文章主要介绍了Angular2数据绑定的相关知识。具有很好的参考价值。下面跟着小编一起来看下吧
    2017-04-04
  • 利用Angularjs和bootstrap实现购物车功能

    利用Angularjs和bootstrap实现购物车功能

    在学习了如何简单开始一个Angular程序之后,跟着网上的教程我也来实现一个购物车功能,为了减少页面样式设计我使用了bootstrap来偷懒,现在分享给大家,有需要的可以参考借鉴。
    2016-08-08
  • angular实现导航菜单切换

    angular实现导航菜单切换

    这篇文章主要为大家详细介绍了angular实现导航菜单切换,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • Angular1.x复杂指令实例详解

    Angular1.x复杂指令实例详解

    这篇文章主要介绍了Angular1.x复杂指令,结合实例形式分析了指令的使用、模板指令、指令的作用域等概念与具体使用技巧,需要的朋友可以参考下
    2017-03-03
  • AngularJS模块详解及示例代码

    AngularJS模块详解及示例代码

    本文主要讲解AngularJS模块的相关知识,这里整理了详细的基础资料,并提供示例代码和示例实现效果图,有兴趣的小伙伴可以参考下
    2016-08-08
  • angularjs在ng-repeat中使用ng-model遇到的问题

    angularjs在ng-repeat中使用ng-model遇到的问题

    本文给大家分享了一个个人在使用angular过程中遇到的在ng-repeat中使用ng-model的问题,并附上简单的解决办法,希望能对大家学习angular有所帮助
    2016-01-01
  • AngularJS 路由和模板实例及路由地址简化方法(必看)

    AngularJS 路由和模板实例及路由地址简化方法(必看)

    下面小编就为大家带来一篇AngularJS 路由和模板实例及路由地址简化方法(必看)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-06-06
  • AngularJS使用带属性值的ng-app指令实现自定义模块自动加载的方法

    AngularJS使用带属性值的ng-app指令实现自定义模块自动加载的方法

    这篇文章主要介绍了AngularJS使用带属性值的ng-app指令实现自定义模块自动加载的方法,结合实例形式分析了ng-app自动加载我们自定义的模块作为根模块的操作步骤与实现技巧,需要的朋友可以参考下
    2017-01-01
  • 详解Angular 自定义结构指令

    详解Angular 自定义结构指令

    本篇文章主要介绍了详解Angular 自定义结构指令,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06

最新评论