我有以下代码段:
angular.module('test', []).controller('TestCtrl', function ($scope, $http) {
$scope.selectedTestAccount = null;
$scope.testAccounts = [];
$http({
method: 'GET',
url: '/Admin/GetTestAccounts',
params: { applicationId: 3 }
}).success(function (result) {
$scope.testAccounts = result;
});
}
有人告诉我,我应该考虑为$ http请求创建服务 有人可以给我一个例子,说明如何为上面的代码执行此操作。特别是我不知道如何设置服务并让控制器注入它。
答案 0 :(得分:14)
您的服务需要看起来像这样:
angular.module('testaccount', []).
factory('TestAccount', function($http) {
var TestAccount = {};
TestAccount.get = function(applicationId, callback) {
$http.get('/Admin/GetTestAccounts?applicationId=' + applicationId).success(function(data) {
callback(data);
});
};
return TestAccount;
});
您的控制器需要注入服务,使用参数调用服务对象,并发送回调函数:
angular.module('test', ['testaccount']).controller('TestCtrl', function ($scope, TestAccount) {
$scope.selectedTestAccount = null;
$scope.testAccounts = [];
TestAccount.get(3, function (data) {
$scope.testAccounts = data;
})
}
在教程中阅读有关service dependency injection的更多信息。