gpt4 book ai didi

javascript - 在 AngularJS 中发出 GET 请求后,在 2 个 Controller 之间共享全局变量失败

转载 作者:行者123 更新时间:2023-12-03 10:12:42 25 4
gpt4 key购买 nike

我正在使用 2 个不同的 Controller ,共享一个全局值 currentOpenningFolder。我希望 2 个 Controller 无论如何都能同步到该变量。但在此示例中,在 GET 请求中,我更改了第一个 Controller 中的变量,但无法在第二个 Controller 中查看该变量。相反,它显示 currentOpenningFolder 的初始值。任何想法为什么会发生这种情况?

      angular.module('scopeExample', [])   
.controller('MyController', ['$scope','currentOpenningFolder','$http', function($scope,currentOpenningFolder,$http) {
$scope.sayHello = function() {

$http.get('https://api.github.com/users/chuson1996').then(function(obj){
currentOpenningFolder = obj;
console.log(currentOpenningFolder);
})
};
}])
.controller('MyController2', ['$scope','currentOpenningFolder', function($scope,currentOpenningFolder) {
$scope.sayHello = function() {
$scope.currentOpenningFolder = currentOpenningFolder;
console.log($scope.currentOpenningFolder);
};
}])
.value('currentOpenningFolder',{});

最佳答案

不要像这样将一个对象分配给其他对象:

currentOpenningFolder = obj;

如果您这样指定,currentOpenningFolder 将释放对原始对象的引用并引用其他对象obj。因此,最好的方法是创建 currentOpenningFolder 的属性并将对象分配给该属性,如下所示:

currentOpenningFolder.prop = obj;

然后将其访问到其他 Controller ,例如:

$scope.currentOpenningFolder = currentOpenningFolder.prop;

已编辑:

试试这个 plunkr

关于javascript - 在 AngularJS 中发出 GET 请求后,在 2 个 Controller 之间共享全局变量失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30036514/

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