今天又被一個angularjs的一個問題給難住了,有花了比較多的時間去解決
option ng-repeat多空白項
<select class="form-control" ng-model="posts.website">
<option value="0">請選擇網站</option>
<option ng-repeat="row in list.websites" value="{{row.websites_id}}" >{{row.websites_name}}</option>
</select>
請看上面的代碼,ng-repeat在迴圈的時候發現了一個空白的選項,chrome解析出來代碼是
chrome解析錯誤碼
<option value="? undefined:undefined ?"></option>
然後查了list.websites對象的值貌似沒有問題
然後google一下,這裡又要吐槽一下百度查不到結果
發現要初始化posts.website的值,於是用ng-init初始一下值,把代碼修改成
<select class="form-control" ng-model="posts.website" ng-init="posts.website='0'">
<option value="0">請選擇網站</option>
<option ng-repeat="row in list.websites" value="{{row.websites_id}}" >{{row.websites_name}}</option>
</select>
正常了,好坑啊
這文章裡講了怎麼解決添加頁面的option多出來的問題
在修改頁面裡我也是安裝這個方法去處理,但是不行,給ng-model附上值就是顯示不了預設值,最後在自己的摸索下解決了這個問題
正確方面
<select ng-model="posts.website" ng-options="c.websites_id as c.websites_name for c in posts.websites" class="form-control" ng-selected="c.websites_id==posts.website">
<option value="">請選擇網站</option>
</select>
遊覽器解析的代碼為
<select ng-model="posts.website" ng-options="c.websites_id as c.websites_name for c in posts.websites" class="form-control ng-pristine ng-valid ng-touched" ng-selected="c.websites_id==posts.website">
<option value="" class="" selected="selected">請選擇網站</option>
<option label="fdsaffd" value="number:4">fdsaffd</option>
<option label="fdsaffdsa" value="number:3">fdsaffdsa</option>
<option label="fdsaf" value="number:2">fdsaf</option>
<option label="小松部落格" value="number:1" selected="selected">小松部落格</option>
</select>
預設的“小松部落格”已經添加了selected的屬性