2016-09-29 4 views
0

Ich habe Probleme beim Zugriff auf meine Benutzerinformationen aus dem angularen Bereich für eine HTTP-Anfrage. Ich kann die Informationen sehen, die ich in den Entwicklertools benötige, aber ich habe Probleme beim Zugriff darauf.Zugriff auf Daten von AngularJS Scope

Hier ist, was ich habe:

var scope = angular.element("#comment").scope(); 
    console.log(scope); 
    //console.log(scope.navvm.currentUser.name); 

ich den Kommentar gesetzt Teil habe versucht, aber es funktioniert nicht. Wenn ich den nicht auskommentierten Teil laufe; Das kann ich in meinem Entwickler-Tools sehen

enter image description here

ich Benutzernamen und E-Mail durchgestrichen.

Hier Navigation-Controller:

(function() { 

angular 
    .module('meanApp') 
    .controller('navigationCtrl', navigationCtrl); 

navigationCtrl.$inject = ['$location','authentication']; 
function navigationCtrl($location, authentication) { 
    var vm = this; 

    vm.isLoggedIn = authentication.isLoggedIn(); 

    vm.currentUser = authentication.currentUser(); 

} 

})(); 

Hier Navigation Richtlinie:

(function() {

angular 
    .module('meanApp') 
    .directive('navigation', navigation); 

function navigation() { 
    return { 
    restrict: 'EA', 
    templateUrl: '/common/directives/navigation/navigation.template.html', 
    controller: 'navigationCtrl as navvm', 
    scope: '@?' 
    }; 
} 

})(); 
+0

Können Sie etwas mehr Kontext bereitstellen? Wenn Sie beispielsweise in einem Service auf Bereichsvariablen zugreifen müssen, würden Sie diese beispielsweise als Parameter an die Service-Methode übergeben. Sie sollten nicht wirklich auf den Umfang zugreifen müssen, wie Sie es hier versucht haben. – Lex

+0

Einverstanden. Es sollte in einem Dienst sein. Dies ist ein Beweis für das Konzept im Moment. Langfristig wird es in einem Dienst sein. –

+0

Können Sie mehr von dem umgebenden Code anzeigen? Oder vielleicht sogar ein [MCVE]. – Lex

Antwort

0

Ich würde empfehlen, eine Logging-Anweisung innerhalb Zugabe der Kontrolle in Frage.

Also, für Ihren Fall, fügen Sie einfach einen console.log(currrentUser) in der Controller-Definition.

BEARBEITEN: Sie verwenden $ scope nicht. Sie verwenden die controller as Syntax. Wenn Sie auf diese Weise Daten debuggen müssen, fügen Sie eine $ scope-Variable hinzu, die auf den aktuellen Controller verweist: $scope.navvm = this;

Prost!

+0

Ich verstehe nicht den Grund dafür. Ich weiß, dass der Controller richtig funktioniert. Ich kann die Daten in den Entwicklertools –

+0

sehen, wenn Sie einen Plunkr geben können, dann könnten wir mehr Hilfe sein – K3v1n

+0

Noch nie einen Plunder vorher getan. Außerdem gibt es ein JWT, das in dem Browser gespeichert ist, den der Controller verwendet. Nicht sicher, ob Plunkr das replizieren könnte. –