angularjs工厂可以返回除对象之外的东西吗?

时间:2014-09-16 12:58:59

标签: javascript angularjs factory

我开始乱用角度js。

我写了这个工厂

mbg.factory('pollCall', function ($http, pollSettings) {
    return function (callback) {
        $http({
            method: 'GET', url: pollSettings.getUrl()
        }).success(function (response) {
            callback(response);
        }).error(function () {
            callback(false);
        });
    };
});

从中可以看出,它返回的是函数而不是“return {};”宾语。这个例子有效,但我在考虑是否可以设计一个工厂,以及以后它是否会破坏我的应用程序?

1 个答案:

答案 0 :(得分:1)

您可以使用工厂返回任何内容并返回功能正常。但在这种情况下,不需要返回功能。您应该只使用返回$http调用返回的promise值。

mbg.factory('pollCall', function ($http, pollSettings) {

        return {
           getData:function() {
                 return $http({method: 'GET', url: pollSettings.getUrl()});
           }
        };
}

在控制器中,只需使用与在服务中相同的成功和错误回调。

pollCall.getData().success(...).error(...);