1

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

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");  
    });
4

2 回答 2

1

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

于 2013-04-15T02:35:32.750 回答
0

正如布赖恩所说,它们都同样有效。

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

在完全在.factory方法中定义的服务中使用该功能可能不是一个好主意,在这种情况下您也不需要它。但是,如果您有一项服务确实需要这种多功能性,那么将这种风格用于所有服务可能是值得的。

于 2013-05-04T03:44:55.637 回答