gpt4 book ai didi

javascript - AngularJs:如何访问 Controller 外部的全局变量?

转载 作者:数据小太阳 更新时间:2023-10-29 05:15:48 25 4
gpt4 key购买 nike

<分区>

我正在尝试通过普通函数访问全局变量,这可能吗?

我已经使用 $rootScope 设置了一些 var,我正在尝试通过回调函数访问它。这个回调是从 Controller 调用的。我不想在该回调中传递 $rootScope

有什么方法可以访问那个 $rootScope.var 吗?

如果可能,我愿意使用服务。

请提出建议。

谢谢

我正在尝试按如下方式访问 rootScope:

    function fbLandingCtrl($scope, $rootScope) {
$rootScope.isFBLoggedin = false;
$scope.login = function() {
console.log( $rootScope.isFBLoggedin);
fbHelper.login(getUserInfo);
};

function getUserInfo(){
fbHelper.getUserInfo(updateStatus);
}
function updateStatus(userInfo){
$rootScope.isFBLoggedin = true;
console.log( $rootScope.isFBLoggedin);
}
}

我的服务是:

    myapp.factory('FBService', [ '$rootScope', function ($rootScope) {
$rootScope.isFBLoggedin = false; // global variable
$rootScope.userName = null;
$rootScope.userEmail = null;

return {

getStatus: function() {
return $rootScope.isFBLoggedin;
},
setStatus: function(status) {
console.log("Status:"+status);
return $rootScope.isFBLoggedin = status;
}
};
}]);

它在 updateStatus fn 下显示 isFBLoggedin 为 true 但它没有反射(reflect)在 View 上

我正在打印 {{isFBLoggedin}} 但 ts 显示 false

终于开始工作了。

我遵循了@dluz 的解决方案。

我还使用了 $rootScope.$apply(function() {}}) 来渲染 View

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com