本人,程序員妹子一枚,,,,名字中有萌字,簡稱萌妹子哈,,,首先貼出代碼:
同樣的方式,用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>