2016-03-24 28 views
0

Hizmetimi enjekte ederek bana $ enjektör: unpr hatası veren açığı açarken sorun yaşıyorum. İşte benim kodudur:

(function() { 

/** 
* This is a service to perform the backend REST calls for a Release 
*/ 

'use strict'; 

angular.module('app.services') 
     .service('ReleaseService', ReleaseService); 
ReleaseService.$inject = ['$http']; 
function ReleaseService() { 

    var releaseService = {}; 

    var releasesUrl = 'http://localhost:8080/api/releases'; 

    releaseService.releases = getReleases; 

    return releaseService; // return the release service object to the controller 

    /** 
    * Get the list of the releases. Does an HTTP GET request to the backend 
    * @returns {Array} of releases to the caller of the service 
    */ 
    function getReleases(){ 
     var releases = []; 
     $http.get(releasesUrl).then(function(responseData){ 

      //check the status from the response data. 
      if(responseData.status !== 200){ 
       alert('The request could not be completed. Please try again'); 
      } else{ 
       // else, Parse the json data here and return to the service caller 
       for(var release in responseData.data){ 
        releases.push({slug: release, data: responseData.data[release]}); 
       } 
      } 
     }); 
     return releases; 
    } 

// Bu ben

(function(){ 

angular.module('app.uploadedReleases') 
     .controller('UploadedReleasesController', UploadedReleasesController) 
     .controller('ModalController', ModalController); 


UploadedReleasesController.$inject = ['$log', '$scope', '$modal', 'ReleaseService', 'TrackService']; 
function UploadedReleasesController ($log, $scope, $modal, releaseService, TrackService){ 

function init(){ 

     var something = releaseService.releases(); 
    } 
} 

muhtemelen ne eksik bir fikrin üstünde oluşturulan hizmet enjekte controller.js dosyasıdır?

+1

Sorunun sorun olup olmadığı konusunda emin değilim, ancak hizmetinizde '$ http' kullanıyorsunuz ve onu kullanmadınız. Onu kontrol cihazınıza enjekte ettiniz, ancak kontrol cihazınızda doğrudan '$ http' kullanmadığınız için orada ihtiyacınız olduğunu düşünmüyorum. Ayrıca, ana uygulamanız nerede kayıtlı? Hem "app.services" hem de "app.uploadReleases" öğelerini enjekte ettiğinizden emin olun. – Lex

+0

@Lex Hizmetimde $ http enjekte etme konusunda iyi nokta. Ekledim Ve app.services ve app.uploadedReleases ana uygulamasında kayıtlı. – noobcoder

+1

'ReleaseService'de' http: // http' –

cevap

1

Girişler için teşekkürler millet. Ben ana uygulama modülünde app.services kayıt eksik olduğunu düşünüyorum. Bunu yapmak sorunu çözdü.

İlgili konular