Ich zeige eine Liste der Benutzer in einer Tabelle an, jede Zeile hat ein Kontrollkästchen, um den Benutzer auszuwählen, und der Wert des Kontrollkästchens ist die ID des Benutzers. Die ausgewählten IDs werden wiederum in einem Bereich unterhalb der Tabelle angezeigt.Aktivieren Sie alle Kontrollkästchen vuejs
Wie kann ich alle Kontrollkästchen aktivieren und alle Kontrollkästchen deaktivieren, wenn Sie auf das Kontrollkästchen "Alle auswählen" in der Kopfzeile meiner Tabelle klicken? Interagiere ich mit dem DOM, um dies oder durch das Vue-Objekt zu tun, denke ich, dass es Letzteres sein sollte, aber nicht ganz sicher ist, wie man sich einer scheinbar einfachen Aufgabe nähert ?! Jede Hilfe wäre willkommen!
HTML
<div id="app">
<h4>Users</h4>
<div>
<table>
<tr>
<th>Name</th>
<th>Select <input type="checkbox" @click="selectAll"></th>
</tr>
<tr v-for="user in users">
<td>{{ user.name }}</td>
<td><input type="checkbox" v-model="selected" value="{{ user.id }}"></td>
</tr>
</table>
</div>
<span>Selected Ids: {{ selected| json }}</span>
</div>
Javascript/Vuejs
new Vue({
el: '#app',
data: {
users: [
{ "id": "1", "name": "Shad Jast", "email": "[email protected]",
{ "id": "2", "name": "Duane Metz", "email": "[email protected]"},
{ "id": "3", "name": "Myah Kris", "email": "[email protected]"},
{ "id": "4", "name": "Dr. Kamron Wunsch", "email": "[email protected]"},
{ "id": "5", "name": "Brendon Rogahn", "email": "[email protected]"}
],
selected: []
},
methods: {
selectAll: function() {
// ?
}
}
})
PROBLEM: 1) alle auswählen; 2) Wählen Sie einen Eintrag ab. Das SelectAll-Kontrollkästchen sollte deaktiviert werden. – Sigma
@Sigma Guter Fang, ich habe der Geige eine Lösung hinzugefügt, vielleicht keine großartige Lösung, aber es funktioniert. Fühlen Sie sich frei, Ihre eigene Lösung zu veröffentlichen. – haakym
In der Methode selectAll sollte "if (this.allSelected)" anstelle von "if (! This.allSelected)" sein. Es besteht keine Notwendigkeit zu verwenden! . –