2016-05-04 13 views
0

Der folgende Code gibt mir jedes Mal einen Fehler, wenn er ausgeführt wird. Der Teil service.getTracks (req, function (tracks), gibt einen Fehler im Parameter 'req' und sagt, dass es nicht definiert ist. Allerdings funktioniert das Programm immer noch, es funktioniert aber gibt immer noch einen Fehler. Ich habe mich gefragt, ob jemand etwas verlieren könnte Licht auf, warum dies geschieht? ich habe jetzt, mit 0 Fortschritt blind für 4 Stunden gestarrt ... und bei allen geschätzt wird helfen!Warum wird die Variable 'req' als undefiniert betrachtet?

Bitte stellen Sie Fragen in Bezug auf die Frage, ob etwas verschwommen oder etwas ist.

mit freundlichen Grüßen, Victor

app.factory('echonestService', [ 
'$http', 
'$rootScope', 
'$cookies', 
'$location', 
function($http, $rootScope, $cookies, $location) { 
    var service = {}; 
    service.getTracks = function(req, callback) { 
     $http(req).then(
      function(res) { 
       var tracks = []; 
       res.data.forEach(function(e) { 
        tracks.push(e.song_id); 
       }); 
       callback(tracks); 
       console.log($rootScope.previews); 
       $location.path('/review'); 
      } 
     ); 
    }; 

    service.createPlaylist = function(name, tracks) { 
     var url = 'http://127.0.0.1:8080/api/create-playlist'; 
     var data = { 
      'user_id': $cookies.get('username'), 
      'name': name, 
      'tracks': tracks, 
      'access_token': $cookies.get('access_token'), 
      'refresh_token': $cookies.get('refresh_token') 
     }; 

     $http.post(url, JSON.stringify(data)).then(
      function(res) { 
       $rootScope.playlistLink = res.data; 
       console.log($rootScope.playlistLink); 
       $location.path('/result'); 
      }, 
      function(err) { 
       console.log("error: ", err); 
      } 
     ); 

     service.getTracks(req, function(tracks) { 
      data.tracks = tracks; 
      $http.post(url, JSON.stringify(data)).then(
       function(res) { 
        $rootScope.playlistLink = res.data; 
        $rootScope.playlistName = name; 
        console.log($rootScope.playlistLink); 
       }, 
       function(err) { 
        console.log("error: ", err); 
       } 
      ); 
     }); 
    }; 
    return service; 
}]); 
+1

Uh, weil 'req' * in' createPlaylist' nicht definiert ist? – Bergi

+0

Was ist die genaue Fehlermeldung, ist das eine Ausnahme? Wird das Skript im strikten Modus ausgeführt? – Bergi

+0

Ja, aber ich habe versucht, auf alle möglichen Arten zu "definieren", der Fehler (oder andere) erscheinen trotz ihm .. @bergi – Marante

Antwort

0

Der einzige Ort, Sie tatsächlich req verwendet, ist hier:

$http(req).then(
    function(res) { 
    (...etc...) 

then() läuft nach $ http auch wenn req nicht definiert, weshalb Ihr Code funktioniert immer noch, so dass Sie nicht Notwendigkeitreq überall definiert - aber da Sie definieren es nicht vor der Verwendung in $http, erhalten Sie den Fehler.

Verwandte Themen