Ich habe den folgenden Code, der den Login-Namen für den aktuell angemeldeten in Sharepoint-Benutzer zurück:JavaScript Zuordnung nicht auf globale Variable
var currentUser;
var currentUserName;
ExecuteOrDelayUntilScriptLoaded(MainMethod,'sp.js');
function MainMethod() {
GetName();
alert("MAIN " + currentUserName);
}
function GetName(){
this.clientContext = new SP.ClientContext.get_current();
this.oWeb = clientContext.get_web();
currentUser = this.oWeb.get_currentUser();
this.clientContext.load(currentUser);
this.clientContext.executeQueryAsync(Function.createDelegate(this,this.onQuerySucceeded), Function.createDelegate(this,this.onQueryFailed));
}
function onQuerySucceeded() {
currentUserName= currentUser.get_loginName().split("\\")[1];
alert("GetName " + currentUserName);
}
function onQueryFailed(sender, args) {
alert('Failed to retrieve user name');
}
Wenn ich den Code ausführen, bekomme ich diese 2 Warnmeldung Boxen :
"GetName" firstname.lastname
"MAIN" undefined
Sollte die Linie dernicht currentUserName= currentUser.get_loginName().split("\\")[1];
zuweisenWert für die globale currentUserName
Variable?
Haben Sie die Ergebnisse jedes Teils dieser Logik überprüft? h. log out 'currentUser.get_loginName()', 'currentUser.get_loginName(). split (" \\ ")' und 'currentUser.get_loginName(). split (" \\ ") [1]'. Überprüfen Sie, ob Sie alles sind, was Sie erwarten. –
Ja, alle geben die richtigen Werte zurück und der Code funktioniert wie erwartet, abgesehen von der Variablenzuweisung. 'get_loginName()' gibt den Namen des Benutzers in der Form 'i: 0 # .w | Domäne \ Vorname.Nachname 'zurück – Bassie
versuche, window.currentUserName einen Wert zuzuweisen – meen