gpt4 book ai didi

AngularJS $http.get 返回速度不够快

转载 作者:可可西里 更新时间:2023-11-01 17:35:32 25 4
gpt4 key购买 nike

.factory('someFac', function (CONFIG, $injector, $http) {
return $http.get('url').then(function (response) {
var temp = response.data.answer;
var answer = '';
if(temp == bar){
answer = barAnswer;
}
else if(temp == foo){
answer = fooAnswer;
}
return $injector.get(answer);
}
}

所以我的问题是,在工厂完成执行之前 $http.get 没有完成获取响应...我应该如何解决这个问题?我在某个地方读到我可以实现 app.config 以将变量注入(inject)提供者中……这可能是一个解决方案吗?

最佳答案

你的工厂/服务应该是维护数据的东西, Controller 应该只使用它(这种方式可以跨不同的 Controller 发生双向绑定(bind))。

.factory('someFac', function ($http) {
var self = this;
self.init = function() {
return $http.get('url').then(function(response) {
self.data = response.data;
});
}
}

现在您的工厂可以在任何地方注入(inject)并维护数据,因此您所有的 Controller 都将实时更新。为确保数据已加载,请确保将 init 放入路由中的解析中。

resolve: {
someFac: function (someFac) {
return someFac.init();
}
}

现在在 Controller 中你可以这样使用它:

.controller('someControleler', function ($scope, someFac) {
$scope.data = someFac.data;
});

希望这对您有所帮助。

关于AngularJS $http.get 返回速度不够快,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32382792/

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