昨晚對項目程序進行重構,發現一些數據冗餘很是嚴重,一些貨幣,單位等靜態數據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。 }
獨立引用公共函數:app
factory.currs = function () { var deferred = $q.defer(); var args = {}; httpRequestEvent('POST', '/Code/Currencies', args).then(function (data) { deferred.resolve(data); }); return deferred.promise; };
在全部頁獲取貨幣的,所有改成:ide