2016-07-12 8 views
3

ui-select erlaubt keine duplizierten Werte, die in einen ausgewählten Listeneintrag eingefügt werden sollen. Ich habe einen Anwendungsfall, bei dem ein Benutzer einen Wert mehrmals eingeben kann. Der vom Benutzer eingegebene Wert wird nicht aus der Dropdown-Liste ausgewählt.Erlauben doppelter Wert in der Komponente ui-select

Ist es möglich, dies mit einer ui-select Richtlinie zu erreichen?

<ui-select multiple tagging tagging-label="(custom 'new' label)" ng-model="ctrl.multipleDemo.colors" theme="bootstrap" sortable="true" ng-disabled="ctrl.disabled" style="width: 300px;" title="Choose a color"> 
    <ui-select-match placeholder="Select colors...">{{$item}}</ui-select-match> 
    <ui-select-choices repeat="color in ctrl.availableColors | filter:$select.search track by $index"> 
    {{color}} 
    </ui-select-choices> 
</ui-select> 

Hier ist die Probe http://plnkr.co/edit/s407ooeoeFh2dH9DynZy?p=preview zupfen

Die Bedienungsanleitung Werte eingeben kann wie 'a' in diese wählen ui. Nach einmaliger Eingabe von 'a' darf ein Benutzer 'a' nicht erneut eingeben, da ng-repeat keinen doppelten Wert zulässt. Ich habe versucht, Track by $ index zu verwenden, so dass es die Array-Position einnehmen kann, aber ich kann den gleichen Wert nicht zweimal eingeben.

Antwort

0

ui-select unterstützt derzeit diese Funktionalität nicht. I requested this feature gestern und es wurde leider abgelehnt. Ich habe es in meinem eigenen Fork (see commit) implementiert und das mit dem Problem verknüpft.

Wenn Sie diese Funktion noch benötigen, können Sie versuchen, meinen Repo zu umgehen/herunterzuladen, in den Zweig feat-duplicates-allowed zu wechseln und den Code mit Schluck zu erstellen. Um es zu aktivieren, fügen Sie einfach duplicates-allowed="true" zu Ihrem ui-select Element hinzu.

Fühlen Sie sich frei, einen Daumen nach oben oder einen Kommentar zum UI-Auswahlproblem hinzuzufügen, wenn Sie denken, dass es ein nützlicher Beitrag zur Bibliothek wäre.

Haftungsausschluss: Ich habe die grundlegenden Fälle für das Feature getestet, und es funktioniert für meinen Anwendungsfall, aber ich habe keine umfangreichen Tests von Edge Fällen durchgeführt.

Verwandte Themen