2017-05-22 48 views
-2

尝试创建一个简单的列表框,其中只能选择一个项目,并且可以选择0个项目。AngularJS选择,清除所选值

我尝试过很多事情,但每次我在选择获得所选择的白线...

我怎样才能实现在C#/ VB有一个列表框样?我可以清除选定的值并在我的选择中看不到选定的行!

我选择代码

<select 
    size="5" 
    style="width: 100px" 
    ng-model="vm.current.selection" 
    ng-options="role as role.Name for role in vm.roles"> 
</select> 

编辑:

它的乐趣,看到2人不明白的问题,并说这是不可能的,当我得到一个解决方案,我的实际问题,他们这样做 - 1 ....

+0

这似乎是一个标准的HTML选择框;目前还不清楚你的问题在这里。 HTML选择框只允许默认选择单个项目... – Claies

+0

我希望它具有0个选定项目,就像C#列表框 – Vince

+1

不能在HTML/Angular中工作。一旦你选择了一个项目,那么'vm.current.selection'将从'null'变成一个值;您将不得不将该值更改回null以模拟“取消选择”。你*可能*能够添加一个''“'选项,但是当取消选择另一个选项时不会自动选择它,并且它不会像设置'vm.current.selection '为'null' .... – Claies

回答

0

好的,这里是一个解决方案,任何人都想创建一个简单的列表框像C#一次只选择一个项目或选择0项目。

这样做并不美丽,但这是我发现它的工作方式!

因此,这里是我的代码来实现:

vm.current = { 
    selection: [] 
}; 

$scope.$watchCollection(
    function (scope) { 
     return (vm.current.selection); 
    }, 
    function (newValue, oldValue) { 
     if (newValue.length == 2) { 
      var index = findRoleIndexWithId(vm.current.selection, oldValue[0].Id); 
      vm.current.selection.splice(index, 1); 
     } 
    } 
);