隨着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版本的原因,後來我測了測好像不是,苦惱