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

Lösung für das Problem, dass MySql immer das mySqlInstallerConsole-Fenster öffnet

MySql öffnet regelmäßig ein MySQLInstallerConsole...

Detaillierte Erläuterung der Windows-Zeitserver-Konfigurationsmethode

Kürzlich habe ich festgestellt, dass die Serverze...

Vue implementiert ein einfaches Einkaufswagenbeispiel

In diesem Artikelbeispiel wird der spezifische Co...

Detaillierte Erklärung der Set-Datenstruktur von JavaScript

Inhaltsverzeichnis 1. Was ist Set 2. Konstruktor ...

Detaillierte Erklärung generischer Fälle in TypeScript

Definition von Generika // Anforderung 1: Generik...

So bereinigen Sie den MySQL-Speicherplatz in der Alibaba Cloud

Heute habe ich von Alibaba Cloud eine Festplatten...

Ubuntu16.04 erstellt eine php5.6-Webserverumgebung

Ubuntu 16.04 installiert standardmäßig die PHP7.0...