[英]AngularJS $http.get send same xhr request twice
在我的應用程序中,我正在使用Angularjs-gulp-browserify-boilerplate
在我的服務中,我有下一個代碼:
function ResourceService($http, AppSettings) {
'ngInject';
const service = {};
service.getResource = function(params) {
console.log('Get resource')
return new Promise((resolve, reject) => {
$http.get(AppSettings.apiUrl + 'v1/resorce')).then((resp) => {
resolve(resp);
}).catch((err, status) => {
reject(err, status);
});
});
};
在控制器中:
function ResourceCtrl(BidService) {
'ngInject';
// ViewModel
const vm = this;
ResourceService.getResource().then((res) => {
vm.items = res.data;
});
}
export default {
name: 'ResourceCtrl',
fn: ResourceCtrl
};
如何防止查詢重復?
默認情況下, $http
返回一個承諾。 因此您無需再次創建承諾即可解決它。 只需從服務返回請求並解決控制器的承諾即可。
service.getResource = function(params) {
console.log('Get resource')
return $http.get(AppSettings.apiUrl + 'v1/resorce'))
};
調節器
ResourceService.getResource()
.then((res) => {
vm.items = res.data;
}).catch((res) => {
console.log(res.data)
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.