我正在尝试在Angular中切换ng-selected选项,但遇到了一些困难。这是我的尝试:
<select ng-model="datacut.ages" multiple>
<option value="" disabled="disabled">Please Select</option>
<option value="0-15" ng-click="toggleSelect(datacut, '0-15')" ng-selected="datacut.ages.indexOf('0-15') !== -1">15 and Younger</option>
<option value="16-19" ng-selected="datacut.ages.indexOf('16-19') !== -1">16 - 19</option>
<option value="20-24" ng-selected="datacut.ages.indexOf('20-24') !== -1">20 - 24</option>
</select>
控制器:
$scope.toggleSelect = function(dc, str){
dc.ages.splice(dc.ages.indexOf(str), 1);
//e.currentTarget.selected = !e.currentTarget.selected;
};
问题在于,当我点击一个选项时,它会在鼠标按下时被选中,在释放时取消选中。注释掉的代码也是一样的。
我感觉这应该有一个简单的解决方案,但我实在无法想出一种优雅的解决方案。
任何帮助都将不胜感激。
编辑:为了澄清 - 我需要能够没有任何选择,因此单击已选元素需要取消选择。我还需要能够选择多个选项。
toggleSelect
?那个函数会从模型中移除你的选择,也就是说这个选项永远不会被选中,因此被取消选择。如果你删除ng-click
和所有ng-selected
,它就可以正常工作。 - logee