angularJs select ng-selected默認選中遇到的坑


本人,程序員妹子一枚,,,,名字中有萌字,簡稱萌妹子哈,,,首先貼出代碼:

 

同樣的方式,用ng-selected用來做回顯,但是結果讓萌妹我很是詫異,第一個“模板類型”那里的select可正常回顯,第二個“生成方式”那里的select回顯就不生效,一度懷疑自己犯了低級錯誤寫錯代碼,於是檢查了好幾遍,最終無果,於是各種百度,Google,最終簡單總結下,有理解原理的童鞋可以告知,感激不盡

去查看源代碼會發現,select在沒匹配到默認值的情況下,會自動添加<option value="? number:2 ?" selected="selected"></option>這么個東西

解決方式如下:

1、添加ng-init設置默認值

2、用ng-option解決

$scope.listBuildtype =  [{"id":1,"name":"逐條生成"},{"id":2,"name":"匯總生成"}]

 

以上兩種方式,
第一種方式可正常顯示設置的默認值,但是此處這個值是動態的,那就無法用這個方法來設置默認值用來做回顯了,細心的童鞋會發現,在“生成方式”這個select的外側div中,此處我添加了一個ng-if的判斷,當然這個是根據業務需要做的處理,but就是這個ng-if,讓我對這個問題糾結好久呀,害人不淺,,把他換成ng-show之后,用第一種方式就好了,,奇跡般的正常顯示了,,我猜測這一定跟angular的渲染機制有關啦,
ng-if會重新渲染dom,ng-show只是對dom渲染一次,用顯示隱藏來控制HTML元素,但是不理解為什么重新渲染之后就不能正常回顯呢
才疏學淺,,坐等大神們指點一二

推薦第二種方式,,,這個方式百試不厭,,用這種方式也不會出現空選項了<option value="? number:2 ?" selected="selected"></option>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM