Vuejs + Materializecss Auswahlfeld

7

Ich habe diesen Code in meiner Vorlage:

%Vor%

Laut Materializecs-Dokumenten rufe ich $('select').material_select(); auf, um das Standard-Auswahlfeld in etwas Süßes umzuwandeln. Was es auch tut - es ersetzt <select> und <option> Tags durch <ul> und <li> . Daher kann ich nicht auf den Wert von item.size in meiner ViewModel js-Datei zugreifen. Ich habe sogar versucht auf einen Klick auf das Optionsfeld zu warten und die optionClicked-Methode aufzurufen (die dann einfach eine Nachricht alarmieren sollte), versuchte auf selectChared zu warten. Nichts.

Wie kann ich Optionswert in ViewModel erhalten?

ps. nur zur Information: Ich habe nur ein Problem mit dem Auswahlfeld. Eingabefeld zum Beispiel funktioniert gut:

%Vor%

In ViewModel kann ich auf item.name

zugreifen     
Desprit 14.11.2015, 01:17
quelle

8 Antworten

11

Es scheint, dass Materialise keine Ereignisse absetzt, so dass ich keine elegante Lösung finden konnte. Es scheint jedoch, dass die folgende Vuejs-Direktive + jQuery-Problemumgehung funktioniert:

%Vor%

Und dann in Ihrem HTML - bind & lt; select & gt; Verwenden von v-select anstelle von v-model.

    
Denis Mysenko 10.02.2016, 14:50
quelle
6

Vue.js 2.0

Vorlage:

%Vor%

Komponente:

%Vor%     
quelle
2

%Vor% %Vor%
    
Fiacre AYEDOUN 27.01.2017 09:12
quelle
2

Die beste Antwort war nett, hat aber nicht für Vue 2 funktioniert.

Hier ist ein Update von dem (wahrscheinlich immer noch ein wenig Hacky) funktioniert. Ich habe den jQuery-Hook in update() verschoben, da die bind -Funktion zu früh für materialize aufgerufen wurde.

%Vor%

HTML:

%Vor%     
Glycerine 02.05.2017 01:06
quelle
0

Ich hatte ein ähnliches Problem. Der Haken hier ist, dass Sie $('select').material_select(); erst ausgeben müssen, nachdem das DOM Ihrer Vue App fertig ist. So können Sie Ihrer Vue App eine fertige Methode hinzufügen und $('select').material_select(); in Ihre ready-Methode einfügen.

%Vor%

Stellen Sie sicher, dass Sie zuerst Jquery und dann materialize.js gefolgt von Vue.js in Ihre HTML-Datei einfügen.

    
Prakhar 11.01.2016 15:23
quelle
0

Ich möchte eine funktionierende Geige der benutzerdefinierten select2-Direktive einbeziehen, die ich für mein Projekt erstellt habe. Es unterstützt auch mehrere Auswahlmöglichkeiten: Geige

%Vor%     
Desprit 08.03.2016 13:11
quelle
0

v- VueJs2.4 Keine der obigen Antworten wurde für das Mehrfachauswahlelement verwendet. Ich habe es funktioniert, indem ich die select-Element-Optionen durchlaufen habe. Das ist kein richtiger Ansatz und eine Art Hack, aber funktioniert.

Plunker

%Vor%     
user1547535 02.10.2017 07:35
quelle
0

Die mögliche Lösung, die ich gefunden habe, besteht darin, eine Eingabe zu verwenden und sie an einen Dropdown-Inhalt anzuhängen. Es funktioniert gut mit vue, auch wenn Sie Dropdown dynamisch erstellen. Und es ist reaktiv, dass Sie kein anderes Ereignis ausgeben müssen, um Werte zu binden.

Codepen: Ссылка

%Vor%     
Anees Hameed 09.03.2018 06:05
quelle

Tags und Links