[英]Angular - factory should return value from 3rd party callback
我目前正在嘗試編寫角度服務來處理第三方API。 API對象處理所有事情。 您只需創建對象,在其上調用一個函數,並獲得有效負載。 當我逐步調試器中的service函數時,我可以在findRole函數中看到JSON響應,但是隨后出錯:
TypeError: Cannot read property 'then' of undefined
關於如何進行這項工作的任何想法?
var angular = require('angular'),
govtracksvc = require('./rep.service'),
Rep = require('./Rep'),
govtrack = require('govtrack-node');
angular.module('RepresentativeApp', [])
.value('govtrack', govtrack)
.factory('govtracksvc', govtracksvc)
.controller('Rep', Rep);
module.exports = angular.module('RepresentativeApp');
module.exports = function Rep (govtracksvc) {
var rep = this;
rep.list = govtracksvc.findRole(rep.govtrack);
};
module.exports = function govtracksvc(govtrack) {
var rep = this;
var data = {};
govtrack.findRole({current: true}, function (err, res) {
if (err) {
console.log('err: ', err);
}
return res;
}).then(function (res) {
data = res.objects;
});
return data;
};
這是端點,任何人都想查看數據時: https : //www.govtrack.us/api/v2/role/?current=true
這是使用回調的代碼示例,請查看它是否適合您的需求:
模組
var angular = require('angular'),
govtracksvc = require('./rep.service'),
Rep = require('./Rep'),
govtrack = require('govtrack-node');
angular.module('RepresentativeApp', [])
.value('govtrack', govtrack)
.factory('govtracksvc', govtracksvc)
.controller('Rep', Rep);
module.exports = angular.module('RepresentativeApp');
控制者
module.exports = function Rep (govtracksvc, $scope) {
var rep = this;
govtracksvc.findRole(rep.govtrack, function(result){
rep.list = result;
if(!$scope.$$phase){
$scope.$apply();
}
});
};
服務
module.exports = function govtracksvc(govtrack, callback) {
var rep = this;
govtrack.findRole({current: true}, function (err, res) {
if (err) {
console.log('err: ', err);
return {};
}
return res.objects;
});
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.