angular.js - angular下,只請求一次遠端json數據,便可在多個控制器下使用
巴扎黑
巴扎黑 2017-05-15 17:06:02
0
3
511

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,你可以將各個控制器公用的資料持久化到根作用域裡,並透過適當的方式讓其只獲取一次。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!