1

AJAX 操作を実行する多数の関数を作成する必要があるアプリケーションを作成しています。これらすべての関数をモジュール内の 1 つのサービスの下に配置し、必要なときにコントローラーでこれらの関数を呼び出したいと考えています。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;
    });
});

$q で $http を使用してより滑らかな結果を得る例。

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 に答える