2017-05-08 6 views
1

Ich möchte Umbraco aktuelle Benutzerdetails (kein Mitglied, nur Benutzer/admin) erhalten. Ich brauche meine Details mit JS, ich benutze userService, es gibt undefined .. und ich weiß nicht warum ... Gibt es eine Möglichkeit, aktuelle Benutzerdetails mit ng & js ??Wie bekomme ich aktuelle Umbraco Benutzerdetails mit Hilfe von js

// js - Beispiel

angular.module('umbraco').controller('LoginController', [ 

    '$scope', 
    '$http', 
    'editorState', 
    'contentResource', 
    'userService', 

    function ($scope, $http, editorState, contentResource, userService) { 

     $scope.loginAsMember = function() {            
      var _memberId = editorState.current.id; 
      $scope.curUser = userService.getCurrentUser();      
      ); 
     };  
    } 
]); 

Antwort

2

Wenn Sie auf '/Umbraco/Js/umbraco.contollers.js' gleich um Zeile 2170 anschaut, kann man sehen, wie userService.getCurrentUser() verwendet wird.

userService.getCurrentUser() gibt ein Versprechen Objekt, so können Sie verwenden, um Ihre $scope.user einzustellen, dann tun, was Sie tun müssen.

So versuchen, so etwas wie ...

angular.module('umbraco').controller('LoginController', [ 

    '$scope', 
    '$http', 
    'editorState', 
    'contentResource', 
    'userService', 

    function ($scope, $http, editorState, contentResource, userService) { 

     $scope.loginAsMember = function() { 
       userService.getCurrentUser().then(function (user) { 
        var _memberId = editorState.current.id; 
        $scope.curUser = user; 
        console.log($scope.curUser.name); 
       }); 
     }; 
    } 
]); 

Natürlich Ihrer Ansicht nach, wenn, wenn Sie {{curUser.name }} verwendet, so sind die beiden Wege der Datenbindung sollte damit umgehen, sobald der Benutzer-Objekt verfügbar ist. Aber wenn Sie es in Ihrem JS verwenden möchten, müssen Sie besondere Sorgfalt walten lassen, um sicherzustellen, dass das Objekt existiert, bevor Sie es durch Rückrufe und Versprechen usw. verwenden.

Verwandte Themen