Ich habe dieses Problem mit Daten-Bandings, die ich nicht lösen kann.Eindeutige Datenbindung
Ich vermute es könnte der Mangel an meinem Wissen im Winkelbereich sein.
Wenn Sie die Lösung kennen, die ich von Ihnen schätzen würde, könnte eine kleine Erklärung auch enthalten.
Mein Problem:
ich einen Tisch bekommen habe, die ich benutze zusammen mit * ngFor alle Benutzer in meinem Objekt von Daten zu schreiben.
Ich habe dann einen Zusammenbruch auf jeder von diesen, um es dem Benutzer zu ermöglichen, jeden von diesen zu bearbeiten. Jeder dieser Zusammenbrüche hat seine eigenen Felder "Passwort" und "Passwort wiederholen".
An das "password" -Feld angehängt habe ich eine Schaltfläche, die "Slump" genannt wird. Diese Schaltfläche ruft eine Funktion auf, die eine Variable vom Typ string in eine zufällige Zeichenfolge ändert, die als verwendet werden soll ein Passwort.
Mein Problem ist, dass ich die Variable, die ich als eine Datenbindung in jeder Zeile in der Tabelle verwende, geändert habe, wenn ich diese Funktion aufruft. Ich möchte, dass das generierte Passwort eindeutig für das Eingabefeld ist, an das es angehängt ist.
Bilder:
--------------------------------- ------------------------------------------ trennen
Code:
hantera-anvandare.ts:
export class HanteraAnvandareCmp {
private updateUserPwd: string;
private users: Object[] = [
{ userID: '1', firstName: 'Name0', lastName: 'lastname', username: '[email protected]', teamName: 'randomteamname', teamID: 1 },
{ userID: '2', firstName: 'Name2', lastName: 'lastname', username: '[email protected]', teamName: 'randomteamname2', teamID: 2 },
{ userID: '3', firstName: 'Name3', lastName: 'lastname', username: '[email protected]', teamName: 'randomteamname3', teamID: 3 },
{ userID: '4', firstName: 'Name4', lastName: 'lastname', username: '[email protected]', teamName: 'randomteamname4', teamID: 4 },
{ userID: '5', firstName: 'Name5', lastName: 'lastname', username: '[email protected]', teamName: 'randomteamname4', teamID: 4 },
{ userID: '6', firstName: 'Name6', lastName: 'lastname', username: '[email protected]', teamName: 'randomteamname4', teamID: 4 },
{ userID: '7', firstName: 'Name7', lastName: 'lastname', username: '[email protected]', teamName: 'randomteamname4', teamID: 4 },
{ userID: '8', firstName: 'Name8', lastName: 'lastname', username: '[email protected]', teamName: 'randomteamname4', teamID: 4 }
];
private teams: Object[] = [
{ teamName: 'randomteamname', teamID: 1 },
{ teamName: 'randomteamname2', teamID: 2 },
{ teamName: 'randomteamname3', teamID: 3 }
];
private generatePassword():string {
var length = 8,
charset = "ABCDEFGHJKLMNPRSTUVWXYZabcdefghijkmnopqrstuvwxyz23456789",
retVal = "";
for (var i = 0, n = charset.length; i < length; ++i) {
retVal += charset.charAt(Math.floor(Math.random() * n));
}
this.updateUserPwd = retVal;
}
hantera-anvandare.html:
<div class="form-group col-lg-6 col-md-6 col-sm-6">
<div class="form-group">
<label>Nytt lösenord</label>
<div class="input-group">
<input type="text" class="form-control" ngControl="edit_password" [(ngModel)]="updateUserPwd" placeholder="Nytt lösenord">
<span class="input-group-btn">
<a (click)="generatePassword()" class="btn btn-primary">Slumpa</a>
</span>
</div>
</div>
Zuerst würde ich vorschlagen, Sie loszuwerden '$ (event.target)' - vor allem die '$' (jQuery). jQuery findet '' ((ngModel)) '' nicht in der Vorlage. Dies wird von Angular verarbeitet und erreicht niemals das DOM. –
Ich denke, dass Sie mehr von Ihrem Code bereitstellen müssen, um eine Lösung bereitstellen zu können. Wo ist das Element, das die ID 'password_slump 'hat? –
Also, was ist das Problem? Wie ist das aktuelle Verhalten? generiert es kein eindeutiges Passwort? oder es erzeugt ein eindeutiges Passwort, ändert aber das aktualisierte Passwort überall ???? – micronyks