2016-09-29 50 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 –