有關ngOptions 多選的小思考

隨着angular的流行,大城市的一些公司在招人的時候會點名要具備angular開發的能力。分享一個ng的小坑,雖然解決了,但是還是不明就裏。希望下次會注意,也請路過的大神提點。

項目中有複選框的需求select,還要多選的。大概效果如下圖
就是左邊可以用鼠標劃拉一大片,點擊添加到右邊

簡單看了下api,就找到ngoptions咯,於是比貓畫虎,html醬紫

<select ng-model="leftSel" multiple ng-options="item as item.label for item in notSeleted track" style='width:100%' size='15'></select>

controller裏的js醬紫

$scope.notSeleted=[{id: 1,label: '劉經理'},
                   {id: 5,label: '小王'},
                   {id: 2,label: '小張'}, 
                   {id: 3,label: '麗薩'},
                   {id: 4,label: 'Lucy'}]
$scope.leftSel=[];

關鍵問題是,劃中選取的內容在$scope.leftSel中選不到。死活選不到。

苦思冥想,Google了一下午後發現調整常醬紫,就能取到選中的值。

<select ng-model="leftSel.data" multiple ng-options="item as item.label for item in notSeleted track by item.id" style='width:100%' size='15'></select>
//把leftSel寫成json,取裏邊的data值。by the way儘量要用trackby,以避免出錯和重複
$scope.notSeleted=[{id: 1,label: '劉經理'},
                   {id: 5,label: '小王'},
                   {id: 2,label: '小張'}, 
                   {id: 3,label: '麗薩'},
                   {id: 4,label: 'Lucy'}]
$scope.leftSel={'data':[]};

以下爲在線鏈接還能調試哦 [ 請狂點這裏看效果 ]

哦,shit我這個codepen在線的版本兩個版本都是可以取到值的,但我也不知道爲啥我項目裏邊只有下邊那麼寫才能取到選中select的值。我原來以爲是ng版本的原因,後來我測了測好像不是,苦惱

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章