2013-03-18 7 views
2

Le service renvoie data (la réponse $ brut) plutôt que result (la version traitée que je souhaite renvoyer à mon contrôleur), pourquoi le code promise est-il ignoré?Service renvoyant un résultat inattendu, promesse ignorée

///in controller 
Romanize.get($scope.currentMaterial).then(function(d){ 
    $scope.romanized = d; 
}); 

//service 
app.factory('Romanize', ['$http', 'Position', function($http, Position){ 
    return{ 
     get: function(query){ 
      var url= Position.sections[Position.sectionNumber].romanizeService + "?korean=" + query; 
      var promise = $http.get(url).success(function(data) { 
       var parts = $(data).find("span"); 
       var array = []; 
       for (var x = 0; x<parts.length; x++){ 
        array.push(parts[x].title); 
       } 
       var result = array.join(""); 
       return result; 
      }); 
      return promise; 
     } 
    }; 
}]); 

Répondre

2

success Le gestionnaire ne fournit pas de chaîne. Vous devez utiliser then:

var promise = $http.get(url).then(function(data) { 
    var parts = $(data).find("span"); 
    // ... 
    return result; 
}); 
+0

parfait, merci – Tules

+0

Je pensais que le succès était un rappel à appeler http 200 succès le statut. À quoi sert-il alors? – Tules

Questions connexes