Beispielcode zur Implementierung des sekundären Verknüpfungseffekts der Dropdown-Box in Vue

Beispielcode zur Implementierung des sekundären Verknüpfungseffekts der Dropdown-Box in Vue

1. Ergebnisse erzielen

Bildbeschreibung hier einfügen

2. Vom Backend zurückgegebenes Datenformat

"Liste": [
      {
        "id": "1178214681118568449",
        "title": "Backend-Entwicklung",
        "Kinder": [
          {
            "id": "1178214681139539969",
            "Titel": "Java"
          },
          {
            "id": "1178585108407984130",
            "Titel": "Python"
          },
          {
            "id": "1454645056483913730",
            "Titel": "C++"
          },
          {
            "id": "1454645056731377666",
            "Titel": "C#"
          }
        ]
      },
      {
        "id": "1178214681181483010",
        "title": "Frontend-Entwicklung",
        "Kinder": [
          {
            "id": "1178214681210843137",
            "Titel": "JavaScript"
          },
          {
            "id": "1178585108454121473",
            "Titel": "HTML/CSS"
          }
        ]
      },
      {
        "id": "1178214681231814658",
        "Titel": "Cloud Computing",
        "Kinder": [
          {
            "id": "1178214681252786178",
            "Titel": "Docker"
          },
          {
            "id": "1178214681294729217",
            "Titel": "Linux"
          }
        ]
      },
      {
        "id": "1178214681324089345",
        "title": "System/Betrieb und Wartung",
        "Kinder": [
          {
            "id": "1178214681353449473",
            "Titel": "Linux"
          },
          {
            "id": "1178214681382809602",
            "Titel": "Windows"
          }
        ]
      },
      {
        "id": "1178214681399586817",
        "title": "Datenbank",
        "Kinder": [
          {
            "id": "1178214681428946945",
            "Titel": "MySQL"
          },
          {
            "id": "1178214681454112770",
            "Titel": "MongoDB"
          }
        ]
      },
      {
        "id": "1178214681483472898",
        "Titel": "Big Data",
        "Kinder": [
          {
            "id": "1178214681504444418",
            "Titel": "Hadoop"
          },
          {
            "id": "1178214681529610242",
            "Titel": "Funke"
          }
        ]
      },
      {
        "id": "1178214681554776066",
        "title": "Künstliche Intelligenz",
        "Kinder": [
          {
            "id": "1178214681584136193",
            "Titel": "Python"
          }
        ]
      },
      {
        "id": "1178214681613496321",
        "Titel": "Programmiersprache",
        "Kinder": [
          {
            "id": "1178214681626079234",
            "Titel": "Java"
          }
        ]
      }
    ]

Das Datenformat muss nicht mit dem oben angegebenen identisch sein. In meinem vorherigen Artikel habe ich dieses Datenformat für ein Baumsteuerelement verwendet, und hier wird es auf der sekundären Verknüpfung platziert.

3. Auf der Vue-Seite

 <!-- Kategorie TODO -->
      <el-form-item label="Kurskategorie">
        <!--Klassifikation der ersten Ebene-->
        <el-Auswahl
          v-Modell = "Kursinfo.SubjectParentId"
          Platzhalter="Klassifikation der ersten Ebene" @change="subjectLevelOneChanged">
          <el-Option
            v-for="Betreff in Betreff-EinerListe"
            :Schlüssel="Betreff.id"
            :label="Betreff.Titel"
            :Wert="Betreff.id"/>
        </el-Auswahl>

        <!-- Sekundärkategorie-->
        <el-select v-model="courseInfo.subjectId" Platzhalter="Bitte auswählen">
          <el-Option
            v-for="Betreff in BetreffZweiListe"
            :Schlüssel="Betreff.Wert"
            :label="Betreff.Titel"
            :Wert="Betreff.id"/>
        </el-Auswahl>
      </el-form-item>
Kurs importieren aus '@/api/edu/course'
Betreff aus „@/api/edu/subject“ importieren
Standard exportieren {
  Daten() {
    zurückkehren {
      saveBtnDisabled: false, // Ist die Schaltfläche „Speichern“ deaktiviert? courseInfo:{
        Titel: '',
        SubjectId: '', //Sekundäre Kategorie-ID
        subjectParentId:'', //Klassifikations-ID der ersten Ebene
        teacherId: '', //Lehrer-ID
        lessonNum: 0, // Unterrichtsbeschreibung: '', // Kurseinführungscover: '/static/01.jpg', // Standard-Coverbildpreis: 0
      },
      teacherList:[], //Kapseln Sie alle Dozentendaten subjectOneList:[], //Klassifikation der ersten Ebene subjectTwoList:[] , //Klassifikation der zweiten Ebene BASE_API: process.env.BASE_API //Adresse der Schnittstellen-API}
  },
  created() { //Wird vor dem Rendern der Seite ausgeführt //Alle Dozenten initialisieren this.getListTeacher()
    //Initialisiere die Klassifizierung der ersten Ebene this.getOneSubject()
  },
  Methoden: {
    //Durch Klicken auf eine Kategorie der ersten Ebene wird ein Änderungsereignis ausgelöst und die entsprechende Kategorie der zweiten Ebene angezeigt. subjectLevelOneChanged(value){
        //Wert ist der ID-Wert der Klassifizierung der ersten Ebene//Durchlaufen Sie zuerst alle Kategorien, einschließlich der ersten und zweiten Ebene für (var i = 0; i <this.subjectOneList.length; i++) {
        //Jede Klassifizierung der ersten Ebene var oneSubject=this.subjectOneList[i]
        //Beurteilen: Sind alle Kategorien-IDs der ersten Ebene gleich der angeklickten Kategorie-ID der ersten Ebene? if(value===oneSubject.id){ //=== d. h., vergleichen Sie den Wert und den Typ //Holen Sie sich alle Kategorien der zweiten Ebene aus der Kategorie der ersten Ebene this.subjectTwoList=oneSubject.children
          //Löschen Sie den sekundären Klassifizierungs-ID-Wert this.courseInfo.subjectId=''
        }
      }
    },
    //Alle Kategorien der ersten Ebene abfragen getOneSubject(){
      Betreff.getSubjectList()
      .dann(Antwort=>{
        this.subjectOneList=Antwort.Datenliste
      })
    }
  }
}
</Skript>

Die Hauptidee besteht darin, dass wir, wenn ein Klickereignis im Dropdown-Feld der ersten Ebene auftritt, den ID-Wert des Dropdown-Felds der ersten Ebene abrufen (es muss hier nicht unbedingt der ID-Wert sein) und dann die Kategoriesammlung der ersten Ebene durchlaufen, die alle Daten enthält, das Objekt mit demselben ID-Wert wie die durch das aktuelle Klickereignis ausgewählte Kategorie der ersten Ebene finden und dann dessen untergeordnetes Attribut (meine untergeordneten Elemente sind eine Sammlung von Kategorien der zweiten Ebene im Backend) dem Kategorie-Array-Objekt der zweiten Ebene „subjectTwoList“ im Datenattribut zuweisen.
Hier hat das Backend alle Daten auf einmal abgerufen und ich habe sie auf dem Frontend durchlaufen und gelöst. Natürlich kann man auch die Ausführungslogik des Single-Click-Events modifizieren. Eine andere Methode besteht darin, mit dem ausgewählten Schlüssel und dem Dropdown-Box-Schlüssel jedes Mal alle Nebenkategorien im Backend zu überprüfen und dann die gefundenen Nebenkategorien der zweiten Dropdown-Box zuzuweisen. Diese Methode ist allerdings etwas langsam, obwohl sie auch eine Möglichkeit ist, sie umzusetzen.

Dies ist das Ende dieses Artikels darüber, wie Sie mit Vue den sekundären Verknüpfungseffekt der Dropdown-Box erzielen. Weitere relevante Inhalte zur sekundären Verknüpfung der Vue-Dropdown-Box finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder durchsuchen Sie die folgenden verwandten Artikel weiter. Ich hoffe, Sie werden 123WORDPRESS.COM in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Holen Sie sich den Text und den Optionswert des Dropdown-Felds in Vue
  • Lösen Sie das Problem, dass der Titelwert unverändert bleibt, wenn Sie das Vant-Dropdown-Feld Van-Dropdown-Item in Vue verwenden
  • Die Tabelle in vue+Element ist editierbar (Dropdown-Feld auswählen)
  • Detaillierte Erläuterung des Dropdown-Felds „Dynamische Bindung auswählen“ von vuejs2.0 zur Unterstützung mehrerer Auswahlmöglichkeiten
  • Beispiel einer von Vue implementierten Dropdown-Box-Funktion
  • Beispielcode für Vue und iView zur Realisierung der sekundären Verknüpfung auf Provinz- und Gemeindeebene
  • Vue wählt sekundäre Verknüpfung der zweiten Ebene aus, Standardauswahl des ersten Optionswerts, Beispiel
  • Vue lernt den Mintui-Picker-Selektor, um ein Beispiel für eine sekundäre Verknüpfung von Provinzen und Gemeinden zu erreichen

<<:  Beispiel für die Anpassung von rem an mobile Geräte

>>:  Zusammenfassung der Erfahrungen und Fähigkeiten im Webdesign

Artikel empfehlen

Detailliertes Tutorial zur Installation von ElasticSearch 6.4.1 auf CentOS7

1. Laden Sie das ElasticSearch 6.4.1-Installation...

So fügen Sie einem Hintergrundbild in CSS3 eine Farbmaske hinzu

Vor einiger Zeit stieß ich während der Entwicklun...

Detaillierte Erläuterung der MySQL-Fremdschlüsseleinschränkungen

Amtliche Dokumentation: https://dev.mysql.com/doc...

So implementieren Sie eine Paging-Abfrage in MySQL

SQL-Paging-Abfrage:Hintergrund Im System des Unte...

Zusammenfassung der Erfahrungen beim Website-Erstellen

<br />Welche Grundsätze sollten beachtet wer...

Zabbix benutzerdefinierte Überwachung Nginx Status Implementierungsprozess

Inhaltsverzeichnis Zabbix benutzerdefinierte Über...

Ein praktischer Bericht über XSS-Angriffe in einem VUE-Projekt

Inhaltsverzeichnis Vorwort Entdecken Sie die Ursa...

Beispiel für eine Formatierungsmethode für Datum und Uhrzeit in js

js Datums-/Zeitformat Konvertieren Sie Datum und ...

Erläuterung der Lösung zur mobilen H5-Bildgenerierung in JavaScript

Derzeit gibt es viele Betriebsaktivitäten für öff...

Einführung in die drei wesentlichen Protokolle für MySQL-Datenbankinterviews

Inhaltsverzeichnis 1. Redo-Log (Transaktionsproto...

CSS3 Milchglaseffekt

Wenn der Milchglaseffekt gut gelingt, kann er die...

JavaScript zur Implementierung eines Sprachwarteschlangensystems

Inhaltsverzeichnis einführen Hauptmerkmale Effekt...