【发布时间】:2015-12-03 22:55:35
【问题描述】:
我正在尝试在 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它工作正常 -
是的,我将添加一个编辑以澄清,但我希望能够取消选择事物(以便没有选择任何内容)
标签: javascript angularjs angular-ngmodel