1

ロードする必要がある 2 つの JSON ファイルがあります。私は今、以下のように別々のサービスを介してそれらをロードします:

app.factory('AventosService', function($rootScope, $http)
{
  var data = [];
  return {
    promise: null,
    loadAventosJson: function()
    {
      this.promise = $http.get('resources/json/aventos.json',{timeout:20000}).then(
      function(response)
      {
        data = response.data;
        $rootScope.$broadcast('AventosJsonLoaded');
      },
      function(data)
      {
        log('ERROR: ' + data.status);
      })
    },
    getAventosJson: function()
    {
      if (!data.length && !this.promise) this.loadAventosJson();
      return data;
    }
  }
});

app.factory('PartsService', function($rootScope, $http)
{
  var data = [];
  return {
    promise: null,
    loadPartsJson: function()
    {
      this.promise = $http.get('resources/json/part_numbers.json',{timeout:20000}).then(
      function(response)
      {
        data = response.data;
        $rootScope.$broadcast('PartsJsonLoaded');
      },
      function(data)
      {
        log('ERROR: ' + data.status);
      })
    },
    getPartsJson: function()
    {
      if (!data.length && !this.promise) this.loadPartsJson();
      return data;
    }
  }
});

サービスを呼び出すには、次のようにします。

$scope.aventosJson = AventosService.getAventosJson();

そして

$scope.partsJson = PartsService.getPartsJson();

次に、両方のイベントが火災であるかどうかを確認します。AventosJsonLoaded両方のイベントはPartsJsonLoaded

4

1 に答える 1

1

どうぞ:

app.factory('TheService', function($rootScope, $http)
{
  var data = [];
  return {
    aventosPromise:null,
    loadAventosJson: function()
    {
      this.aventosPromise = $http.get('resources/json/aventos.json',{timeout:20000}).then(
      function(response)
      {
        data = response.data;
        $rootScope.$broadcast('AventosJsonLoaded');
      },
      function(data)
      {
        log('ERROR: ' + data.status);
      })
    },
    getAventosJson: function()
    {
      if (!data.length && !this.aventosPromise) this.loadAventosJson();
      return data;
    },
    partsPromise: null,
    loadPartsJson: function()
    {
      this.partsPromise = $http.get('resources/json/part_numbers.json',{timeout:20000}).then(
      function(response)
      {
        data = response.data;
        $rootScope.$broadcast('PartsJsonLoaded');
      },
      function(data)
      {
        log('ERROR: ' + data.status);
      })
    },
    getPartsJson: function()
    {
      if (!data.length && !this.partsPromise) this.loadPartsJson();
      return data;
    }
  }
});
于 2013-08-23T03:12:13.103 に答える