2017-05-22 99 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); 
     } 
    } 
);