ÜberblickEs gibt viele Formularanforderungen im Hintergrundverwaltungssystem. Wir hoffen, Daten im JSON-Format schreiben und dynamische Formulare über die Vue-Schleife dynamisch rendern zu können. Und es ist möglich, die gerenderten Formulardaten extern abzurufen, um einen Warehousing-Vorgang durchzuführen. Das V-Modell verstehenvue-model entspricht der Übergabe eines Werts an das Formularelement und dem externen Abhören von Eingabeereignissen. Wenn wir die Formularkomponente selbst kapseln, können wir daher auch einen Wert übergeben und auf das Eingabeereignis hören, um den Eingabewert zu erhalten. <Eingabetyp="Text" v-Modell="Ding"> <!-- Äquivalent zu --> <Eingabetyp="Text" v-bind:Wert="Ding" v-on:input="Ding = $event.target.value"> GeschäftsanwendungsszenarienIch habe kürzlich eine Online-Bildungsplattform geschrieben und festgestellt, dass beim Hinzufügen von Kursen im Hintergrund die für jeden Kurs erforderlichen Parameter unterschiedlich waren (einige Kurse hatten keine speziellen Parameter). Die Verwendung eines festen Formulars in diesem Szenario war nicht elegant und der Arbeitsaufwand enorm. Um dieses Problem zu lösen, können wir beim Hinzufügen von Kursen die vom Kursklassifizierungsformular benötigten Parameter dynamisch anzeigen, die eingegebenen Kursparameter abrufen, Daten erstellen und Speichervorgänge durchführen. Anzeigekategorien durch Komponenten <!-- Antwort.vue --> <Vorlage> <div> <li> <div v-if="data.id != 0" @click="getfid(data.id)" :id="data.id"> {{ data.name }}</div> <ul v-if="Daten.Kinder && Daten.Kinder.Länge > 0"> <Antwort v-for="Kind in data.children" :key="Kind.id" :data="Kind"/> </ul> </li> </div> </Vorlage> <Skript> Bus aus „./bus.js“ importieren; Standard exportieren { //Name deklarieren: "Antworten", Requisiten: ['Daten'], //Komponenten deklarieren Komponenten: {}, //Variable data() deklarieren { zurückkehren { fid: 0, } }, //Benutzerdefinierte Filter Filter: { myfilter: Funktion (Wert) { Wert = Wert.Slice(0, 3); Rückgabewert + "********"; } }, // Initialisierungsmethode mounted() { }, //Methoden deklarieren methods: { //Klicken Sie auf die Kategorie-ID getfid: Funktion (fid) { dies.fid = fid; //Konsole.log(diese.fid); bus.$emit("msg", fid); localStorage.setItem("fid", diese.fid); //Alle Hervorhebungen abbrechen var divs = document.getElementsByClassName("bg"); //Durchlaufe den Selektor für (var i = divs.length - 1; i >= 0; i--) { //Hervorhebung abbrechen divs[i].classList.remove("bg"); } //Markieren Sie zuerst das aktuelle Element var mydiv = document.getElementById(fid); //Highlight-Klassenselektor dynamisch hinzufügen mydiv.classList.add("bg"); } } } </Skript> <Stil> ul { Polsterung links: 10rem; Listenstil: keiner; } .bg { Hintergrund: orange; Farbe: weiß; } </Stil> Verwenden Sie Komponenten von Drittanbietern, um Kategorie-IDs zu überwachen <!--bus.js--> Vue von „vue“ importieren exportiere standardmäßig neues Vue(); Seite „Kurs hinzufügen“ <Vorlage> <div> <Köpfe></Köpfe> <h1>Seite zur Kurseinreichung</h1> <Antwort: Daten = "Meine Daten"/> <van-cell-gruppe> <van-field label="Kurstitel" v-model="title"/> <van-field label="Kursbeschreibung" v-model="desc" rows="5" type="textarea"/> <van-field label="Kurspreis" v-model="Preis"/> <div v-for="(Wert, Schlüssel, Index) in Parametern"> <van-field :label="Schlüssel" v-model="info[Schlüssel]"/> </div> <van-button color="gray" @click="addcourse">Kurs speichern</van-button> </van-cell-group> </div> </Vorlage> <Skript> //Andere Komponenten importierenimport bus from './bus.js'; Antwort aus "./reply" importieren; Köpfe aus "./heads" importieren; Standard exportieren { //Komponenten deklarieren: { 'Antwort': Antwort, 'Köpfe': Köpfe, }, //Konstruktor erstellt() { //Bus überwachen.$on('msg', target => { konsole.log(Ziel); dies.fid = Ziel; wenn (this.cid === 0) { dies.get_cate(diese.fid) } anders { this.$toast.fail("Sie haben den Kurs bereits gespeichert und können die Kategorie nicht erneut auswählen"); gibt false zurück; } }); }, //Variable data() deklarieren { zurückkehren { //Daten meineDaten: {}, //Kurskategorie-ID fid: localStorage.getItem("fid"), Titel: "", Preis: "", Beschreibung: "", CID: 0, Videos: [], videosrc: "", Parameter: {}, Information: {} } }, // Initialisierungsmethode mounted() { dies.get_data(); }, //Methoden deklarieren methods: { get_cate(fid) { dies.axios.get('http://localhost:5000/getcate/', {params: {'fid': fid}}).dann(Ergebnis => { var myparams = result.data.params; wenn (myparams === '') { meineparams = null } meineparams = JSON.parse(meineparams) diese.params = meineparams für (var Schlüssel in this.params) { dies.$set(diese.info, Schlüssel, '') } console.log(diese.info) }) }, //Kurs hinzufügen addcourse: function () { var Listen = []; für (var-Schlüssel in this.info) { lists.push({'Schlüssel': Schlüssel, 'Wert': this.info[Schlüssel], 'Bezeichnung': this.params[Schlüssel]}) } var list_str = JSON.stringify(Listen) var data_post = { fid: diese.fid, Titel: dieser.Titel, Beschreibung: diese.Beschreibung, Preis: dieser.Preis, ID: localStorage.getItem("Benutzer-ID"), } wenn (Listenlänge > 0) { Datenpost = { fid: diese.fid, Titel: dieser.Titel, Beschreibung: diese.Beschreibung, Preis: dieser.Preis, ID: localStorage.getItem("Benutzer-ID"), Parameter:list_str } } dieser.axios.post( „http://localhost:5000/addcourse/“, dies.qs.stringify(data_post)).then((Ergebnis) => { wenn (Ergebnis.Daten.Code === 200) { this.$toast.success('Kurs erfolgreich hinzugefügt'); dies.cid = Ergebnis.Daten.cid; } anders { dies.$toast.fail(result.data.msg); } }); }, //Daten abrufen get_data: function () { //Anfrage senden this.axios.get( 'http://localhost:5000/catelist/').dann((Ergebnis) => { console.log(Ergebnis); //Deklariere den Stammknoten var mytree = {'id': 0, name: ""}; mytree['Kinder'] = Ergebnis.Daten; dies.meineDaten = meinBaum; konsole.log(diese.meinedaten); }); } } } </Skript> <Stilbereich> ul { Polsterung links: 10rem; Listenstil: keiner; } </Stil> Zusammenfassung Einfach ausgedrückt: Wenn wir beim Hinzufügen eines Kurses eine Kategorie auswählen, werden die Parameter, die wir unter dieser Kategorie übergeben müssen, dynamisch in Form eines Formulars angezeigt, sodass Benutzer Kurse hinzufügen und die Effizienz verbessern können. Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird. Das könnte Sie auch interessieren:
|
<<: Regeln für die Gestaltung des Anmeldeformulars
>>: „Implizite Konvertierung“ von MySQL 5.6 führt zu Indexfehlern und ungenauen Daten
Vorwort: In diesem Artikel wird hauptsächlich die...
Inhaltsverzeichnis 1. Verstehen 2. Verwendung 1. ...
Spezifische Methode: Schritt 1: Stoppen Sie den M...
1. Ursache: Der Effekt, nachdem die Subbox auf Fl...
Vorwort: Verwenden Sie das Element-Framework in v...
MySQL 8.0: MVCC für große Objekte in InnoDB In di...
MySQL unterstützt viele Arten von Tabellen (d. h....
In diesem Artikel wird der spezifische Code von j...
Umgebung: init_worker_by_lua, set_by_lua, rewrite...
Vorwort Bei der tatsächlichen Verwendung der Date...
In diesem Artikelbeispiel wird der spezifische Co...
Vorwort: Die MySQL-Datenbank bietet eine breite P...
Boost installieren Es gibt viele Möglichkeiten, C...
Im vorherigen Artikel haben wir Folgendes vorgest...
Wenn ein Backup vorhanden ist, ist es ganz einfac...