首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >角工厂应该从第三方回调返回值。

角工厂应该从第三方回调返回值。
EN

Stack Overflow用户
提问于 2015-10-05 12:49:26
回答 1查看 175关注 0票数 0

我目前正在尝试编写一个有角度的服务来处理第三方API。API对象处理所有事情。您只需创建对象,调用该对象上的函数,并获得有效负载即可。当我在调试器中逐步执行服务函数时,我可以在findRole函数中看到JSON响应,但是它会出现以下错误:

代码语言:javascript
复制
TypeError: Cannot read property 'then' of undefined

有什么办法让这件事成功吗?

模块

代码语言:javascript
复制
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');

控制器

代码语言:javascript
复制
module.exports = function Rep (govtracksvc) {
    var rep = this;
    rep.list = govtracksvc.findRole(rep.govtrack);
};

服务

代码语言:javascript
复制
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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-05 15:18:12

下面是使用回调的代码示例,看看它是否适合您的需要:

模块

代码语言:javascript
复制
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');

控制器

代码语言:javascript
复制
module.exports = function Rep (govtracksvc, $scope) {
    var rep = this;
    govtracksvc.findRole(rep.govtrack, function(result){
        rep.list = result;
        if(!$scope.$$phase){
            $scope.$apply();
        }
    });
};

服务

代码语言:javascript
复制
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;
    });
};
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32949068

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档