我正在编写一个应用程序,我必须在其中编写许多执行 AJAX 操作的函数。我想将所有这些功能放在一个模块中的一个服务下,并在需要时在控制器中调用这些功能。我知道它可以使用 Angular JS 模块来完成,但没有找到正确的方法来解决它。
谁能帮我这个?如果您可以通过示例进行演示,那就太好了。
我正在编写一个应用程序,我必须在其中编写许多执行 AJAX 操作的函数。我想将所有这些功能放在一个模块中的一个服务下,并在需要时在控制器中调用这些功能。我知道它可以使用 Angular JS 模块来完成,但没有找到正确的方法来解决它。
谁能帮我这个?如果您可以通过示例进行演示,那就太好了。
实际上,我不久前对此做了一个简短的博客文章。
基本示例:
var app = angular.module('myApp', []);
//create a service:
app.factory('myService', function($http) {
return {
getFoo: function(success) {
$http.get('/Foo/Url/Here').success(success);
}
}
});
//use it in a controller
app.controller('MyCtrl', function($scope, myService) {
myService.getFoo(function(data) {
$scope.foo = data;
});
});
使用 $http 和 $q 以获得更流畅的结果的示例。
var app = angular.module('myApp', []);
//create a service:
app.factory('myService', function($http, $q) {
return {
getFoo: function() {
var deferred = $q.defer();
$http.get('/Foo/Url/Here').success(function(data) {
deferred.resolve(data);
}).error(function(){
deferred.reject();
});
return deferred.promise;
}
}
});
//use it in a controller
app.controller('MyCtrl', function($scope, myService) {
$scope.foo = myService.getFoo();
});