詳解使用angularjs的ng-options時如何設(shè)置默認(rèn)值(初始值)
這兩天我用ng-options過程中遇到的初始值為空白的問題,記得去年就遇到過,怎么解決的忘記了,費(fèi)了一陣子功夫之后解決了,想記下來,方便遇到同樣問題的小伙伴當(dāng)然還有自己。
1.場景:
就是做一個查詢列表的彈窗,其中有一個條件需要用到下拉菜單,數(shù)據(jù)是用過ajax傳遞過去的。
2.實(shí)現(xiàn):
a.html:
<select ng-model="myselect" ng-options="o for o in options"></select>
b.js:
var url = 'xxxxxx';//該url只是舉例,具體的代碼要寫可用的請求地址。 $http.post(url). success(functoin(data){ $sope.options=data; //賦值給ng-options });
我當(dāng)時以為,html寫好,動態(tài)數(shù)據(jù)傳遞給ng-options,這樣下拉菜單就可以用了。運(yùn)行之后也大致正常,只是下拉菜單是空白的,點(diǎn)擊之后出現(xiàn)后臺傳遞的數(shù)據(jù),就多了第一個的空白項,點(diǎn)擊彈出所有的下拉選項,選擇要選的選項之后,空白項就又消失了。
查看瀏覽器中加載好的html發(fā)現(xiàn)<select>標(biāo)簽中多了一個非后臺傳遞的option:
<select ng-model="myselect" ng-options="o for o in options"> <option value="?"></option> <option value="0">--請選擇--</option> . . </select>
有點(diǎn)諷刺的是,我去年開發(fā)的一個頁面中的下拉菜單就遇到過這個問題,當(dāng)時費(fèi)了老大功夫才解決,但是怎么解決的竟然忘記了,沒辦法,我又試了一通ng-init都不行,依然出現(xiàn)空白的選擇首先展示出來。
想了一下這個value="?" 有時候是“undefind”應(yīng)該是ng-model="myselect"的初始值,當(dāng)后端數(shù)據(jù)傳遞過來賦值給options之后(即:$sope.options=data;),angularjs一定是沒有覆蓋select的原始o(jì)ption,即$scope.myselect=undefind,而是在這個option基礎(chǔ)上加上了后端傳遞過來的data數(shù)據(jù),從而導(dǎo)致頁面上下拉菜單中多出一個空白的下拉選項。
按照這個思路,又查了一下stackoverflow中的一些說法,我將js改成從為options賦值時就初始化myselect:
var url = 'xxxxxx';//該url只是舉例,具體的代碼要寫可用的請求地址。 $http.post(url). success(functoin(data){ $scope.options=data; //賦值給ng-options $scope.myselect = $scope.options[0]; });
這樣,問題真的解決了。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- angularjs select 賦值 ng-options配置方法
- AngularJS基礎(chǔ) ng-model-options 指令簡單示例
- Angular中ng-options下拉數(shù)據(jù)默認(rèn)值的設(shè)定方法
- AngularJS中ng-options實(shí)現(xiàn)下拉列表的數(shù)據(jù)綁定方法
- angular指令筆記ng-options的使用方法
- AngularJS動態(tài)綁定ng-options的ng-model實(shí)例代碼
- AngularJS學(xué)習(xí)筆記之ng-options指令
- angularJs中ng-model-options設(shè)置數(shù)據(jù)同步的方法
相關(guān)文章
Angular CLI在Angular項目中如何使用scss詳解
angular-cli自身支持Scss預(yù)處理器,Scss比css更加方便靈活,而且層次清晰,代碼整潔。下面這篇文章主要給大家介紹了關(guān)于Angular CLI在Angular項目中如何使用scss的相關(guān)資料,需要的朋友可以參考下。2018-04-04AngularJs Understanding Angular Templates
本文主要介紹AngularJs Understanding Angular Templates的資料,這里整理了詳細(xì)的資料及簡單示例代碼,有興趣的小伙伴的參考下2016-09-09Angular實(shí)現(xiàn)雙向折疊列表組件的示例代碼
本篇文章主要介紹了Angular實(shí)現(xiàn)雙向折疊列表組件的示例代碼,分為左右兩組,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-11-11angular 未登錄狀態(tài)攔截路由跳轉(zhuǎn)的方法
今天小編就為大家分享一篇angular 未登錄狀態(tài)攔截路由跳轉(zhuǎn)的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-10-10在angularJs中進(jìn)行數(shù)據(jù)遍歷的2種方法
今天小編就為大家分享一篇在angularJs中進(jìn)行數(shù)據(jù)遍歷的2種方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-10-10