欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

angularjs下拉框空白的解決辦法

 更新時(shí)間:2022年03月25日 16:45:35   作者:大朋展翅  
這篇文章主要為大家詳細(xì)介紹了angularjs下拉框空白的解決方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

搜索angularjs下拉框空白,可以出現(xiàn)很多解決方案,但是對(duì)于靜態(tài)字段來(lái)說(shuō),網(wǎng)上目前還沒(méi)有找到解決方案,如下:

<select class="form-control" ng-model="UserState"
  ng-init="UserState=0">
 <option value="-1">選擇狀態(tài)</option>
 <option value="0">在職</option>
 <option value="1">離職</option>

 </select>

如果要按照網(wǎng)上的方法來(lái)解決,首先需要把下拉選項(xiàng)存放到一個(gè)對(duì)象數(shù)組當(dāng)中,對(duì)于一個(gè)兩個(gè)下拉框還好說(shuō),如果項(xiàng)目當(dāng)中有很多這種下拉框,就要費(fèi)好大勁了。最簡(jiǎn)單粗暴的方法是修改angularjs源代碼,不再生成空白符。奈何功力有限,未能找到相應(yīng)添加空白行的地方,不過(guò)值得欣慰的是,發(fā)現(xiàn)出現(xiàn)空白符是因?yàn)槭褂昧薾g-model的原因,干脆寫(xiě)個(gè)指令來(lái)替代ng-model的功能也可以解決下拉空白的問(wèn)題,于是寫(xiě)了一個(gè)指令:

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即可實(shí)現(xiàn)相同的功能,同時(shí)不會(huì)出現(xiàn)下拉空白,當(dāng)然,這個(gè)指令畢竟是自己隨便寫(xiě)的幾行代碼,遠(yuǎn)遠(yuǎn)不如ng-model強(qiáng)大,比如動(dòng)態(tài)修改指令綁定的值來(lái)改變選中項(xiàng)還不能實(shí)現(xiàn),僅僅可以在第一次初始化時(shí)綁定選中項(xiàng),另外也不支持ng-selected。如果讀者有興趣,可以自己實(shí)現(xiàn)后續(xù)的功能,對(duì)于我來(lái)說(shuō),已經(jīng)可以滿足需要了。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • AngularJs directive詳解及示例代碼

    AngularJs directive詳解及示例代碼

    本文主要講解AngularJs directive的知識(shí),這里整理了相關(guān)資料及示例代碼,有興趣的小伙伴可以參考下
    2016-09-09
  • AngularJS中$apply方法和$watch方法用法總結(jié)

    AngularJS中$apply方法和$watch方法用法總結(jié)

    這篇文章主要介紹了AngularJS中$apply方法和$watch方法用法,結(jié)合實(shí)例形式總結(jié)分析了$apply方法和$watch方法的功能、參數(shù)含義、使用技巧與相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2016-12-12
  • AngularJS實(shí)現(xiàn)數(shù)據(jù)列表的增加、刪除和上移下移等功能實(shí)例

    AngularJS實(shí)現(xiàn)數(shù)據(jù)列表的增加、刪除和上移下移等功能實(shí)例

    這篇文章給大家分享了AngularJS循環(huán)實(shí)現(xiàn)數(shù)據(jù)列表的增加、刪除和上移下移等基礎(chǔ)功能,對(duì)大家學(xué)習(xí)AngularJS具有一定的參考借鑒價(jià)值,有需要的朋友可以看看。
    2016-09-09
  • Angular2庫(kù)初探

    Angular2庫(kù)初探

    本文將側(cè)重點(diǎn)放到npm上來(lái),看看npm平臺(tái)給ng2帶來(lái)的酷炫的幫助。具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧
    2017-03-03
  • 詳解如何構(gòu)建一個(gè)Angular6的第三方npm包

    詳解如何構(gòu)建一個(gè)Angular6的第三方npm包

    這篇文章主要介紹了詳解如何構(gòu)建一個(gè)Angular6的第三方npm包,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-09-09
  • Angular之指令Directive用法詳解

    Angular之指令Directive用法詳解

    本篇文章主要介紹了Angular之指令Directive系列詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-03-03
  • Angular中使用Api 代理的實(shí)現(xiàn)

    Angular中使用Api 代理的實(shí)現(xiàn)

    我們對(duì)接的過(guò)程中總是遇到跨域的問(wèn)題,本文使用 angualr 來(lái)講解代理api對(duì)接的話題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • angular-cli修改端口號(hào)【angular2】

    angular-cli修改端口號(hào)【angular2】

    本篇文章主要介紹了angular2中angular-cli修改端口號(hào)的相關(guān)知識(shí)。具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧
    2017-04-04
  • angular8.5集成TinyMce5的使用和詳細(xì)配置(推薦)

    angular8.5集成TinyMce5的使用和詳細(xì)配置(推薦)

    這篇文章主要介紹了angular8.5集成TinyMce5的使用和詳細(xì)配置,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-11-11
  • Angularjs實(shí)現(xiàn)下拉框聯(lián)動(dòng)的示例代碼

    Angularjs實(shí)現(xiàn)下拉框聯(lián)動(dòng)的示例代碼

    本篇文章主要介紹了Angularjs下拉框聯(lián)動(dòng)的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-08-08

最新評(píng)論