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

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

3.代码如下
<script>

angular.module("myApp",[])
        .factory("$remoteData",['$http',function($http){
            return $http.get("../json/json.json").then(function(response){
                //获取 远程数据 服务
                //目的:期望该远程数据(json.json)需要重复利用,希望只请求一次json.json数据,可以在多个控制器中反复使用
                //问题:路由每跳转一次,就会重新请求一次'json.json'
                console.log(response.data);
                var myData = "";
                return myData = response.data;
            })
        }])
        .factory("$localData",function(){
            return {"name":"wenwu","age":"26"};
        })
        .controller("FirstController",function($scope,$remoteData,$localData){
                //远程请求的数据 --获取失败(如果这里能够获取json.json的数据,应该就成功了)
                $scope.remoteData = $remoteData;
                console.log('$scope.remoteData',$scope.remoteData);//返回 $scope.remoteData d {$$state: Object}
                console.log('$scope.remoteData.$$state.value',$scope.remoteData.$$state.value);//返回undefined

                //本地制作的数据 -- 获取成功
                $scope.localData = $localData;
                console.log($scope.localData);//返回 Object {name: "wenwu", age: "26"}
        })

</script>

巴扎黑
巴扎黑

모든 응답(3)
过去多啦不再A梦

이것을 시도해 볼 수 있습니다:

으아악

컨트롤러에서 다음과 같이 사용하세요:

으아악
滿天的星座

서비스 싱글턴을 사용하고, 서비스 객체에 객체 참조를 걸고, 나중에 이 객체를 직접 가져옵니다

刘奇

Angular에는 루트 범위 $rootScope가 있습니다. 각 컨트롤러에 공통된 데이터를 루트 범위에 유지하고 적절한 방법을 통해 한 번만 얻을 수 있습니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!