2016-06-20 13 views
5

Wir verschieben unser vorhandenes angular1-Projekt nach angular2 und möchten die bestehende Komponente ui-select ersetzen.ui-select Ersatz in Angular2

Ich habe gegoogelt, aber konnte die ui-select Version für angular2 nicht finden.

Hat jemand eine bessere Alternative gefunden?

+0

Irgendein Update auf diesem ?? –

+0

Ich verwende derzeit Primeng Drop-Down-Komponente für mein Projekt – imfarhad

Antwort

1

ng2-select würde etwas davon tun. Die dynamische Datenbindung wird jedoch noch nicht unterstützt.

Tatsächlich sind fast alle von Drittanbietern implementierten Plugins für angular nicht für angular2 implementiert.

0

Für für Angular 2 entwickelten Komponenten speziell finden Sie in der DropDowns package von Kendo UI für Angular 2. Es ist noch in der Beta und das Feedback ist willkommen.

+0

Nur damit jeder weiß, Kendo UI ist eine kommerzielle Lizenz und erfordert, dass Sie eine Lizenz für irgendeine andere Verwendung als irgendeine Hobbycodierung kaufen. – perry

0

Wenn jemand nach ng2 migriert und eine Hybridanwendung (mit ng1 und ng2 - jetzt AngularJS und Angular) ausführen muss, können ng1 UI-Widgets, die nicht mit ng1-Komponenten erstellt wurden Wählen Sie) zur Verwendung in ng2-Komponentenvorlagen. Wir haben das erfolgreich mit ui-select gemacht und es funktioniert großartig. Sehen Sie sich insbesondere die @Directive Annotationsbindung an.

import {Directive, ElementRef, Injector, Input} from '@angular/core'; 
 
import {UpgradeComponent} from '@angular/upgrade/static'; 
 
import {module, IComponentOptions} from 'angular'; 
 

 
class UiSelectComponent implements IComponentOptions { 
 

 
    public bindings: any = { 
 
    items: '<', 
 
    model: '<', 
 
    modelProperty: '@', 
 
    placeholder: '@', 
 
    renderProperty: '@', 
 
    selectProperty: '@' 
 
    }; 
 
    public template = ` 
 
    <ui-select ng-model="$ctrl.model[$ctrl.modelProperty]" class="form-control input-sm" required> 
 
     <ui-select-match placeholder="{{$ctrl.placeholder}}">{{$select.selected[$ctrl.renderProperty]}}</ui-select-match> 
 
     <ui-select-choices repeat="item[$ctrl.selectProperty] as item in $ctrl.items | filter: $select.search"> 
 
     {{item[$ctrl.renderProperty]}} 
 
     </ui-select-choices> 
 
    </ui-select> 
 
    `; 
 
} 
 

 
const selector = 'uiSelectWrapper'; 
 
export const UI_SELECT_COMPONENT = 'spinnaker.core.widget.uiSelect.component'; 
 
module(UI_SELECT_COMPONENT, []).component(selector, new UiSelectComponent()); 
 

 
@Directive({ 
 
    selector: 'ui-select-wrapper' 
 
}) 
 
export class UiSelectComponentDirective extends UpgradeComponent { 
 

 
    @Input() 
 
    public items: any[]; 
 

 
    @Input() 
 
    public model: any; 
 

 
    @Input() 
 
    public modelProperty: string; 
 

 
    @Input() 
 
    public placeholder: string; 
 

 
    @Input() 
 
    public renderProperty: string; 
 

 
    @Input() 
 
    public selectProperty: string; 
 

 
    constructor(elementRef: ElementRef, injector: Injector) { 
 
    super(selector, elementRef, injector); 
 
    } 
 
}

+0

Link sagt Seite nicht gefunden. Bitte korrigieren Sie. "Hier ist ein Link zu unserer Quelle" –

+1

@SangwinGawande leider haben wir uns entschieden, mit einem AngularJS und React zu gehen Hybrid-Anwendung, anstatt auf Angular migrieren, so dass die Quelle entfernt wurde. Ich werde die Beschreibung aktualisieren, um diese Zeile zu entfernen. Ich werde darauf hinweisen, dass die Angular Docs angeben, wie dies zu tun ist. – icfantv

-1

Haben Sie ngx-select-ex Gabel von ng2-select gesehen. ngx-select-ex hat einzelne Auswahl, Mehrfachauswahl, Auswahl, Blur-Ereignis wie select2. demo of ngx-select-ex

+0

Ein Link zu einer Lösung ist willkommen , aber bitte stellen Sie sicher, dass Ihre Antwort ohne sie nützlich ist: [Fügen Sie einen Kontext um den Link hinzu] (// meta.stackexchange.com/a/8259), damit Ihre Mitbenützer haben eine Vorstellung davon, was es ist und warum es da ist. Zitieren Sie dann den relevantesten Teil der Seite, auf die Sie verlinken, falls die Zielseite nicht verfügbar ist. [Antworten, die kaum mehr als ein Link sind, können gelöscht werden.] (// stackoverflow.com/help/deleted-answers) – geisterfurz007