我有以下两种方式,它们似乎都有效:
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");
});
答案 0 :(得分:1)
这两种方法同样有效。我更喜欢第一个变种。无需从空对象开始,设置属性并在可以返回具有属性的对象时返回对象。
答案 1 :(得分:0)
第二种方式更通用。它允许您编写具有多个函数的服务,其中一些函数以相对容易推理的方式调用其他函数。
在完全在.factory
方法中定义的服务中使用该功能可能是一个坏主意,并且在这种情况下你无论如何都不需要它。但是,如果您有一项服务需要多功能性,那么可能值得为所有服务使用该风格。