Angularjs實現一個Factory

昨晚對項目程序進行重構,發現一些數據冗餘很是嚴重,一些貨幣,單位等靜態數據N個頁面均有從數據庫獲取。數據庫

所以,Insus.NET想到了,把它們寫成一個通用的方法。在頁面中,直接去執行此通用的方法便可。json

代碼示例大約以下:promise

 

公共函數:服務器

function httpRequestEvent(type, url, args) {
        var d = $q.defer(); //聲明延後執行,表示要去監控後面的執行。
        $http({
            method: type,
            url: url,
            dataType: 'json',
            headers: {
                'Content-Type': 'application/json; charset=utf-8'
            },
            data: JSON.stringify(args)
        })
            .then(
                function successCallback(response) {
                    d.resolve(response.data); //執行成功,即http請求數據成功,能夠返回數據了。
                },
                function errorCallback(response) {
                    d.reject(response); //執行失敗,即服務器返回錯誤。
                });
        return d.promise; //返回承諾,這裏並非最終數據,而是訪問最終數據的API。
    }
Source Code

 

獨立引用公共函數:app

 factory.currs = function () {
        var deferred = $q.defer();

        var args = {};
        httpRequestEvent('POST', '/Code/Currencies', args).then(function (data) {
            deferred.resolve(data);
        });

        return deferred.promise;
    };
Source Code

 

在全部頁獲取貨幣的,所有改成:ide

相關文章
相關標籤/搜索