angular.js - angular下,只请求一次远程json数据,便可在多个控制器下使用
巴扎黑
巴扎黑 2017-05-15 17:06:02
[AngularJS讨论组]

1.目的:期望该远程数据(json.json)需要重复利用,希望只请求一次json.json数据,可以在多个控制器中反复使用
2.问题:路由每跳转一次,就会重新请求一次'json.json'

3.代码如下

巴扎黑
巴扎黑

全部回复(3)
过去多啦不再A梦

可以尝试一下这样:

factory("$remoteData",['$http', '$q', function($http, $q){
    var self = this;
    
    function getData() {
        if (self.myData) {
            return $q(function(resolve, reject) {
                resolve(self.myData);
            });
        } else {
            return $http.get("../json/json.json").then(function(response){
                self.myData = response.data;
                return self.myData;
            });
        }
    }
    return {getData: getData}
}]);

再controller中这么用:

.controller("FirstController",function($scope,$remoteData,$localData){
    $remoteData.getData().then(function(myData) {
        //use myData
    });
});
滿天的星座

用service 单例的,把对象引用挂在service对象上,后面直接取这个对象

怪我咯

Angular拥有根作用域$rootScope,你可以将各个控制器公用的数据持久化到根作用域里,并通过适当的方式让其只获取一次。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号