使用简单的返回从AngularJS工厂发回数据是否有效?

时间:2013-04-15 02:30:40

标签: angularjs

我有以下两种方式,它们似乎都有效:

angular.module('adminApp')
.factory('TestAccount', function ($http) {
    return {
        get: function (applicationId) {
            return $http({
                method: 'GET',
                url: '/api/TestAccounts/GetSelect',
                params: { applicationId: applicationId }
            });
        }
    }
});

//angular.module('adminApp')
//.factory('TestAccount', function ($http) {
//    var TestAccount = {};
//    TestAccount.get = function (applicationId) {
//        return $http({
//            method: 'GET',
//            url: '/api/TestAccounts/GetSelect',
//            params: { applicationId: applicationId }
//        });
//    };
//    return TestAccount;
//});

第二种方法来自我在stackoverflow上提出的问题的答案。第一种方式是我对它做出的一些改变。

有人可以告诉我哪种方式更传统,两者之间是否存在差异。对我来说,第一种方式看起来更干净,但我不确定我是否错过了使用它的某些功能。

在以下两种情况下,我使用以下内容来调用服务:

    TestAccount.get(3).then(function (result) {
        $scope.testAccounts = result.data;
    }, function (result) {
        alert("Error: No data returned");  
    });

2 个答案:

答案 0 :(得分:1)

这两种方法同样有效。我更喜欢第一个变种。无需从空对象开始,设置属性并在可以返回具有属性的对象时返回对象。

答案 1 :(得分:0)

像布莱恩说的那样,他们都同样有效。

第二种方式更通用。它允许您编写具有多个函数的服务,其中一些函数以相对容易推理的方式调用其他函数。

在完全在.factory方法中定义的服务中使用该功能可能是一个坏主意,并且在这种情况下你无论如何都不需要它。但是,如果您有一项服务需要多功能性,那么可能值得为所有服务使用该风格。