2016-04-14 8 views
0

$ http.getサービスを正しく作成したいが、AngularJSのサービスに問題がある。私はこのコードを作成し、それは動作しますが、すべてのコードはのcontrolerである:

var monApp = angular.module('monApp', []); 
monApp .controller('PhoneListCtrl', ['$scope', '$http', 
    function($scope, $http) { 
     $http.get('http://port:serveur/fichier.xml').then(function(response) { 
      var x2jObj = X2J.parseXml(response.data); //X2J.parseXml(xmlDocument, '/'); 
      var tableauJSON = X2J.getJson(x2jObj); 
     }, function(a, b, c) { 
      alert("Impossible de télécharger le fichier"); 
     }); 
    } 
]); 

あなたは私がサービスでそれを作成するのに役立つことはできますか?おかげさまで

+0

はあなたが読ん持っている(HTTPS [サービスを作成する方法?]://docs.angularjsを。組織/ガイド/サービス) –

答えて

0

これは完璧なソリューションである、のcontroler:

var app = angular.module("myApp", []); 

app.controller("MainCtrl", ["$scope", "userService", 
    function($scope, userService) { 
     userService.getData(); 
    } 
]); 

Webサービス:

app.service("userService",["$http", 
     function($http) { 
      _this = this; 
      this.getData = function() { 
       $http.defaults.headers.common = {"Access-Control-Request-Headers": "accept, origin, authorization"}; 
       $http.defaults.headers.common['Authorization'] = 'Basic ' + window.btoa('username' + ':' + 'password'); 
       $http.get('http://YourServer:YourPort/rest/api/2/auditing/record'). 
       success(function(data) { 
        console.log(data); 
       }); 
      } 
     } 
    ]); 
1

名前fichierServiceを持つサービスと

monApp.factory("fichierService", function($http) { 
    return { 
    getData: function() { 
     return $http.get('http://port:serveur/fichier.xml');  
    } 
    } 
}); 

のような機能getDataを作成し、注入

monApp .controller('PhoneListCtrl', ['$scope', '$http','fichierService', 
function($scope, $http, fichierService) { 
    fichierService.getData().then(function(response) { 
     // rest of code 
    }, function(a, b, c) { 
     alert("Impossible de télécharger le fichier"); 
    }); 
} 
]); 
0
monApp.service('myFooService', function() { 
    this.get = function (url) { 
     return $http.get(url).then(function(response) { 
        var x2jObj = X2J.parseXml(response.data); 
        var tableauJSON = X2J.getJson(x2jObj); 
       }); 
    } 
}); 

してPhoneListCtrlコントローラでそのfichierServiceサービスを使用して、あなたがあなたのサービスを使用することができますこのように

monApp.controller('fooCtrl', function($scope, myFooService) { 
    myFooService.get('http://foo.com/foo.xml'); 
}); 

これは、独自のサービスの実装を開始する方法についてのアイデアを与えるはずです。

+0

はmonApp.fooServiceが正しいですか? monApp.service –

+0

ありがとうございます。私はまだ編集中だった – jmugz3

関連する問題