2016-09-29 107 views
0

我想在我的示例“Nicole”中选择特定值时禁用ui多重选择视图。如果选择“Nicole”,则禁用UI选择,那么用户无法选择其他选项。如何禁用角度选择视图?

当用户选择“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

所以如果你选择尼科尔,你不能够选择其他选项吗?这是你的问题 –

+0

是的..这是问题..正确,如果用户选择任何以前的选项,它删除所有选项 – user944513

+0

你确定,但在你的PLUNK链接可以选择尼科尔以及其他选项也请你检查plunkr链接 –

回答

1

我叉你plunker 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列表中删除以前添加的用户,但它不会从用户界面中删除它。摘要循环没有正确更新。在你的项目中尝试它可能值得它看看它是否在那里正确更新。

希望这会有所帮助!

0

修改OnClickSelect函数调用OnClickSelect($ item,$ select)并添加在作用域中禁用。 $ select变量将帮助我们操纵选定的数据。

使用上,选择= “OnClickSelect($项目,$选择)”NG-禁用= UI中选择相应的代码 “已禁用”

$scope.disabled = false; 
$scope.restrictNames = ["Nicole", "Michael"]; 

$scope.OnClickSelect=function(item, $select) 
{ 
    if($scope.restrictNames.indexOf(item.name) != -1){ 
    $select.selected = []; 
    $scope.multipleDemo = []; 
    $scope.disabled = true; 
    } 
    $scope.multipleDemo.push(item.age); 
} 
+0

请分享朋友 – user944513

+0

http://plnkr.co/edit/N7TG7seS8N41BnpKV3Jr?p=preview –