AngularJs: Wie funktioniert ui-select richtig?

8

DIE SITUATION:

Ich mache eine eckige App, wo ich ui-select verwenden muss: Auf der Benutzer-Info-Seite muss in der Auswahl möglich sein, ein oder mehrere Tags auszuwählen. Es funktioniert fast, abgesehen von der Tatsache, dass ich Probleme habe, die vorhandenen Tags zu bekommen und anzuzeigen.

DER CODE:

Anzeigen:

%Vor%

Controller:

%Vor%

VERSUCH 1:

Es passiert ein sehr seltsames Verhalten. Ich sehe die Tags nicht auf der Info-Seite des Benutzers, und auch nicht in der ui-Auswahl. Außer wenn es 5/6 mal aktualisiert wird, dann wird es plötzlich auf magische Weise funktionieren und die Tags auf der Benutzerinformationsseite und in der ui-Auswahl anzeigen. In beiden Fällen, funktioniert und nicht, bekomme ich mehrere Fehlermeldung der gleichen Art:

  

Die Eigenschaft 'length' von undefined kann nicht gelesen werden.

VERSUCH 2:

Um dieses Problem zu lösen, habe ich diesen Code im Controller hinzugefügt:

%Vor%

Und ich bekomme keine Fehlermeldung mehr. Die App ist stabil und ich kann die richtigen Tags auf der Benutzerinfo-Seite sehen. Das einzige Problem ist, dass die Tags in ui-select nicht mehr geladen sind.

Wenn ich ein neues Tag auswähle, funktioniert es gut, aber ich verliere die bereits vorhandenen Tags.

FRAGE (n):

Wie kann ich ui-select richtig funktionieren lassen? (derzeit v0.8.3) Es gibt ein Konfliktproblem?

Wie kann ich wirklich vorhandene Daten vom Server aufrufen?

Vielen Dank!

    
johnnyfittizio 22.10.2014, 11:45
quelle

2 Antworten

32

Sie waren nicht besonders beschreibend mit den Fehlern, die Sie sehen, also weiß ich nicht, ob das folgende hilft ..

Ich hatte ursprünglich ein Problem, als ich den Demo-Code ui-select als Beispiel benutzte, weil sie den Filter propsFilter verwenden, der ein benutzerdefinierter Filter ist, den sie für die Demo geschrieben haben:

%Vor%

Ich gehe davon aus, dass Sie diesen Filter nicht in Ihren Code einschließen, was ein Grund für ein Problem sein könnte. Sie können es lösen, indem Sie den normalen Filter von angular verwenden:

%Vor%

Wenn Sie mehrere zu filternde Eigenschaften haben, können Sie alternativ den propsFilter-Filter schreiben, um nach OR und nicht nach AND zu filtern. Wenn Sie "Filter" verwenden, um mehrere Eigenschaften zu filtern, wird versucht, den Suchwert über alle Eigenschaften hinweg anzupassen.

%Vor%

Sie können das Commit mit dem Filter hier sehen: Ссылка

Obwohl Sie bestimmte Filteranforderungen haben, würde ich Ihnen empfehlen, einen eigenen Filter zu schreiben, um eine optimale Leistung sicherzustellen.

    
Nick Martin 16.11.2014, 14:57
quelle
3

Ich weiß nicht, wie die Situation vor Select2 # 4.0 war, aber es ist wirklich nicht so schwierig, es ohne angular-ui-select zu verwenden (und es ist eine Abhängigkeit weniger)

Fügen Sie einfach select2 in Ihre Bower-Abhängigkeiten ein und verwenden Sie sie in Ihrer link -Funktion innerhalb der Direktive:

%Vor%

und Ihr HTML:

%Vor%

Sie können auch die data von der Steuerung über einen Dienst laden, wenn Sie möchten, dann verwenden Sie einfach die scope , um sie einzustellen!

Ich sage das, während ich versucht habe, angular-ui-select zu verwenden, weil ich dachte "hey, es ist Angular, du musst ein Plugin dafür verwenden!", aber das ist nicht immer der Fall :). Außerdem fand ich die Dokumente nicht so hilfreich (nennen Sie mich faul aber hey)

    
a7omiton 23.07.2015 20:23
quelle