我想在我的示例“Nicole”中选择特殊值时禁用ui多选视图。如果我选择“Nicole”,则禁用ui select,然后用户无法选择其他选项。
当用户选择“Nicole”时,我们可以删除之前选择的选项吗?我想只有当用户选择“Nicole”时才会禁用选择视图并删除其他所选选项。
plunker http://plnkr.co/edit/eVXVzlRXJ4KUZaNjID6P?p=preview
$scope.OnClickSelect = function(item) {
$scope.multipleDemo.push(item.age)
}
$scope.OnRemoveSelect = function(item) {
var index = $scope.multipleDemo.indexOf(item.age);
$scope.multipleDemo.splice(index, 1);
}
答案 0 :(得分:1)
我分叉你的羽毛here。
<强>的index.html 强>
我改变了
ng-disabled="disable"
到
ng-disabled="isDisabled()"
<强> demo.js 强>
$scope.disabled = false;
$scope.OnClickSelect = function(item) {
if (item.name === 'Nicole') {
// Check to make sure there is a previous user to remove
if ($scope.multipleDemo.length > 0) {
$scope.multipleDemo.pop();
}
// Disable user picker
$scope.disabled = true;
}
$scope.multipleDemo.push(item.age);
}
$scope.isDisabled = function() {
return $scope.disabled;
}
目前,当您选择“Nicole”时,它会禁用ui选择选择器,并从列表multipleDemo
中删除以前添加的用户。出于某种原因,它正在从multipleDemo
列表中删除以前添加的用户,但它不会从UI中删除它。摘要周期没有正确更新。可能值得在您的项目中尝试它以查看它是否在那里得到正确更新。
希望这有帮助!
答案 1 :(得分:0)
修改OnClickSelect函数调用OnClickSelect($ item,$ select)并在范围中添加禁用。 $ select变量将帮助我们操纵所选数据。
使用 on-select =&#34; OnClickSelect($ item,$ select)&#34; 和 ng-disabled =&#34;禁用&#34; 在ui-select标签中。
App.focus()