2016-09-29 104 views
0

我無法從HTTP請求的角度範圍訪問我的用戶信息。我可以在開發人員工具中看到我需要的信息,但我無法訪問它。如何從AngularJS訪問數據範圍

這是我有:

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

我試着註釋掉部分,但它不工作。當我運行沒有評論的部分;我可以在我的開發者工具

enter image description here

我劃掉的用戶名和電子郵件看到這一點。

這裏的導航控制器

(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(); 

} 

})(); 

這裏的導航指令

(函數(){

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

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

})(); 
+0

你能否提供更多的上下文?通常,如果您需要訪問服務中的範圍變量,例如,您可以將它們作爲參數傳遞給服務方法。您不應該以您在此嘗試的方式訪問範圍。 – Lex

+0

同意。它應該在服務中。這是目前的概念證明。長期來看,它將在服務中。 –

+0

你能展示更多的周邊代碼嗎?或者甚至是[MCVE]。 – Lex

回答

0

我會建議增加一個日誌聲明的CONTRO有問題的勒勒。

因此,對於您的情況,只需在控制器的定義中添加一個console.log(currrentUser)即可。

編輯:您沒有使用$ scope。您正在使用controller as語法。如果您需要以這種方式調試數據,請添加一個指向當前控制器的$ scope變量:$scope.navvm = this;

乾杯!

+0

我不明白這樣做的原因。我知道控制器工作正常。我可以看到開發人員工具 –

+0

中的數據,如果你可以給一個plunkr然後我們可以有更多的幫助 – K3v1n

+0

以前從來沒有做過一個笨蛋。另外還有一個存儲在控制器正在使用的瀏覽器中的JWT。不知道普朗克是否可以複製。 –