200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > angular下拉框点击无反应_angularjs下拉框空白的解决办法

angular下拉框点击无反应_angularjs下拉框空白的解决办法

时间:2020-04-18 20:35:08

相关推荐

angular下拉框点击无反应_angularjs下拉框空白的解决办法

搜索angularjs下拉框空白,可以出现很多解决方案,但是对于静态字段来说,网上目前还没有找到解决方案,如下:

ng-init="UserState=0">

选择状态

在职

离职

如果要按照网上的方法来解决,首先需要把下拉选项存放到一个对象数组当中,对于一个两个下拉框还好说,如果项目当中有很多这种下拉框,就要费好大劲了。最简单粗暴的方法是修改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

{

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

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。