Projektszenario:Dark Horse Vue Projektmanagement-Praxis, Produktklassifizierung abrufen, Datenattribute auf der Registerkarte der Erweiterungsleiste ändern Problembeschreibung:Wenn Sie auf die Registerkarte „+Neues Tag“ klicken, wird ein Eingabefeld angezeigt, in das der Benutzer die hinzuzufügenden Attribute eingeben kann. Das Ergebnis ist, dass es beim Klicken nicht sofort gerendert werden kann async getParametersList() { diese.cat_id = diese.currentSelect[diese.currentSelect.length - 1]; const { data: res } = warte darauf.$http.get( `Kategorien/${this.cat_id}/Attribute`, { Parameter: { sel: "viele" } } ); dies.paramasData = res.data; res.data.forEach(item => { item.attr_vals = item.attr_vals ? item.attr_vals.split(" ") : []; //Steuern Sie die Anzeige und das Ausblenden des Textfelds item.inputVisible=false //Der im Textfeld item.inputValue='' eingegebene Wert console.log(Element) }); Konsole.log(diese.paramasData); }, //Klicken Sie auf die Schaltfläche, um das Dialogfeld anzuzeigen. //Klicken Sie auf die Schaltfläche, um das Texteingabefeld anzuzeigen. showInput(row) { Zeile.inputVisible = true // Das Textfeld automatisch den Fokus erhalten lassen // Die Funktion der Methode $nextTick besteht darin, den Code in der Rückruffunktion erst anzugeben, nachdem die Elemente auf der Seite erneut gerendert wurden // this.$nextTick((_) => { // dies.$refs.saveTagInput.$refs.input.focus() // }) }, Ursachenanalyse:Lesen Sie diesen Artikel https://www.jb51.net/article/222379.htm Es stellte sich heraus, dass ich nach dem Abrufen der Parameterliste den Wert sofort bidirektional gebunden und dann dem Objekt in jeder Spalte das Steuerelementattribut „inputvisible“ hinzugefügt habe. Als die Schaltfläche später angeklickt wurde, konnte das „Inputvisible“ jedes Objekts daher nicht in Echtzeit mit dem „v-if“ im Eingabefeld gerendert werden. Nach der bidirektionalen Bindung werden die Eigenschaftswerte der Objekte im Array hinzugefügt. Vue hat keine Möglichkeit, die Getter- und Setter-Funktionen für die Objekte zu binden, die anschließend zum Array hinzugefügt werden. Daher besteht keine Möglichkeit, ein Echtzeit-Rendering zu erhalten. Lösung:Weisen Sie den Daten nach der Änderung der Daten Werte in den Daten zu. Im Augenblick async getParametersList() { diese.cat_id = diese.currentSelect[diese.currentSelect.length - 1]; const { data: res } = warte darauf.$http.get( `Kategorien/${this.cat_id}/Attribute`, { Parameter: { sel: "viele" } } ); res.data.forEach(item => { item.attr_vals = item.attr_vals ? item.attr_vals.split(" ") : []; //Steuern Sie die Anzeige und das Ausblenden des Textfelds item.inputVisible=false //Der im Textfeld item.inputValue='' eingegebene Wert console.log(Element) }); dies.paramasData = res.data; Konsole.log(diese.paramasData); }, Dies ist das Ende dieses Artikels über Vue-Bindungsobjekte. Array-Daten können nicht dynamisch gerendert werden. Weitere verwandte Vue-Bindungsobjekte und Array-Daten können nicht dynamisch gerendert werden. Durchsuchen Sie bitte die vorherigen Artikel von 123WORDPRESS.COM oder stöbern Sie weiter in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: Detaillierte Analyse und Verwendung des Befehls tcpdump unter Linux
Die Fähigkeiten, die Front-End-Entwickler beherrs...
1. Formular 1. Die Rolle des Formulars HTML-Formu...
Die Definition und Vererbung von Klassen in JS si...
Die Auswirkung der Vervollständigung einer Menüle...
Physische Struktur eines InnoDB-Index Alle InnoDB...
Website-Link: http://strml.net/ Von Samuel Reed T...
Zur Erinnerung: Egal ob bei der Planung, Gestaltun...
Inhaltsverzeichnis 1. Die übergeordnete Komponent...
Vorwort Ich habe bereits einen Artikel über REM-A...
1. HTML-Code Code kopieren Der Code lautet wie fo...
Methode 1: Verwenden Sie den Befehl lsof Mit dem ...
Die Hauptkonfigurationsdatei von Nginx ist nginx....
Die Nginx-Protokolle werden von Filebeat gesammel...
Von NFS bereitgestellte Dienste Mounten: Aktivier...
Ich habe zuvor zum Einstieg in UDP ein einfaches ...