1

我正在编写一个应用程序,我必须在其中编写许多执行 AJAX 操作的函数。我想将所有这些功能放在一个模块中的一个服务下,并在需要时在控制器中调用这些功能。我知道它可以使用 Angular JS 模块来完成,但没有找到正确的方法来解决它。

谁能帮我这个?如果您可以通过示例进行演示,那就太好了。

4

1 回答 1

2

实际上,我不久前对此做了一个简短的博客文章

基本示例:

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();
});
于 2013-02-27T16:44:34.577 回答