gpt4 book ai didi

AngularJS 工厂只调用一次

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

我有一个测验类型的应用程序,它有一个从服务器获取问题列表的工厂:

xoryApp.factory('questionService', function($http) {  
return {
qdata : function(callback) {
$http.get('/static/question.json').success(callback);
}
};
});

然后我在我的 Controller 中这样调用这个工厂:

questionService.qdata(function(results) {
$scope.qdata = results;
});

然后,当我循环浏览问题时,我会在问题和答案部分 View 之间来回切换。问题是每次加载问题 View 时,它都会从服务器重新加载工厂 json。但我希望它只在我加载应用程序时执行一次,而不是每次加载使用该 Controller 的局部 View 时执行此操作。

您是如何在 Angular 上实现这一目标的?

谢谢

最佳答案

在服务方法中缓存服务器调用的结果,你就可以开始了

xoryApp.factory('questionService', function($http) {
var questions;
return {
qdata : function(callback) {
if(questions) {
callback(questions);
}
else {
$http.get('/static/question.json').success(function(data) {
questions=data;
callback(questions);
});
}

}

};
});

关于AngularJS 工厂只调用一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19648345/

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