我正在编写一个应用程序,我必须在其中编写许多执行 AJAX 操作的函数。我想将所有这些功能放在一个模块中的一项服务下,并在需要时在 Controller 中调用这些功能。我知道它可以使用 Angular JS 模块来完成,但没有找到正确的方法来解决它。
谁能帮我解决这个问题?如果能举例说明就太好了。
最佳答案
我实际上做了一个空头blog entry不久前关于这个。
基本示例:
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();
});
关于javascript - 将许多执行 AJAX 操作的方法作为 Angular JS 中的一项服务进行合并,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15117130/