2016-09-29 86 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。不知道普朗克是否可以复制。 –