Sai*_*har 6 multi-select angularjs ui-select angular-ui-select
点击"选择黄色"按钮,我想在所选列表中添加黄色.黄色正在被选中,但下拉列表仍显示黄色.以同样的方式,我想点击"取消选择黄色"按钮取消选择黄色.我能够取消选择黄色,但下拉列表中没有出现黄色.请帮我解决这个问题.HTML:
<ui-select multiple ng-model="multipleDemo.colors" theme="select2" ng-disabled="disabled" style="width: 300px;">
<ui-select-match placeholder="Select colors...">{{$item}}</ui-select-match>
<ui-select-choices repeat="color in availableColors | filter:$select.search">
{{color}}
</ui-select-choices>
</ui-select>
<p>Selected: {{multipleDemo.colors}}</p>
<input type="button" value="select yellow color" ng-click="selectYellowColor()"/>
<input type="button" value="deselect yellow color" ng-click="deselectYellowColor()"/>
Run Code Online (Sandbox Code Playgroud)
JS:
$scope.availableColors = ['Red','Green','Blue','Yellow','Magenta','Maroon','Umbra','Turquoise'];
$scope.multipleDemo = {};
$scope.multipleDemo.colors = ['Blue','Red'];
$scope.selectYellowColor = function(){
if($scope.multipleDemo.colors.indexOf($scope.availableColors[3]) == -1){
$scope.multipleDemo.colors.push($scope.availableColors[3]);
}
};
$scope.deselectYellowColor = function(){
if($scope.multipleDemo.colors.indexOf($scope.availableColors[3]) != -1){
var index = $scope.multipleDemo.colors.indexOf($scope.availableColors[3]);
$scope.multipleDemo.colors.splice(index, 1);
}
};
Run Code Online (Sandbox Code Playgroud)
这是plunker链接 http://plnkr.co/edit/AHZj1zAdOXIt6gICBMuN?p=preview
UPD:这是一个问题的ui-select组成部分.您可以将我的解决方案用作部分解决方法,直到此问题尚未解决
ui-select不会过滤项目.它只是在你的repeat属性中评估你的表达ui-select-choices.如果您想从建议中排除已使用的值,您可以自己完成.
添加额外的过滤器 repeat
<ui-select-choices repeat="color in availableColors | filter:omitSelectedColors | filter:$select.search">
Run Code Online (Sandbox Code Playgroud)
然后定义您的过滤功能:
$scope.omitSelectedColors = function(color) {
return $scope.multipleDemo.colors.indexOf(color) === -1;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13118 次 |
| 最近记录: |