本人,程序員妹子一枚,,,,名字中有萌字,簡稱萌妹子哈,,,首先貼出代碼:
程序員
一樣的方式,用ng-selected用來作回顯,可是結果讓萌妹我非常詫異,第一個「模板類型」那裏的select可正常回顯,第二個「生成方式」那裏的select回顯就不生效,一度懷疑本身犯了低級錯誤寫錯代碼,因而檢查了好幾遍,最終無果,因而各類百度,Google,最終簡單總結下,有理解原理的童鞋能夠告知,感激涕零dom
去查看源代碼會發現,select在沒匹配到默認值的狀況下,會自動添加<option value="? number:2 ?" selected="selected"></option>這麼個東西ui
解決方式以下:spa
一、添加ng-init設置默認值blog
二、用ng-option解決it
$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>
io