如何在角度中禁用选择视图?

时间:2016-09-29 06:34:46

标签: javascript angularjs angularjs-directive ui-select

我想在我的示例“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);
}

2 个答案:

答案 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()