2016-06-09 6 views
0

Das createQuestionDataAsync gibt keine Daten zurück. Die flQuestion.create-Funktion ruft einen Expressdienst auf, der in eine Mongodb-Sammlung schreibt. Die Frage wird geschrieben und der Wert kommt zurück und wird in "Daten" gespeichert. Ich konnte das nicht wie einen typischen Callback einrichten (err, data), da die Antwort zurück nur einen Wert zurückgibt. Vielleicht muss ich das versprechen? Oder kann ich einen Rückruf mit einigen Änderungen behalten?Angular Callback gibt Daten nicht an Angular Versprechen zurück

angular.module ('App') Werk ('flQuestionCrud', function ($ http, $ q, $ Zustand, flQuestion) { return { createNewQuestion. Funktion (newQuestionData) { console.log (“ Vor - flQuestion.create ");

 // Question Call Back Function 
     function questionCallBack(err, data){ 
      if (err){ 
       console.log("flQuestionCrud - Error " + err); 
       console.log("flQuestionCrud - Error Statement " + err); 
       return null; 
       //$state.go('questionCreate'); 
      }else { 
       console.log("flQuestionCrud - Success " + data); 
       console.log("flQuestionCrud - Success Statement " + data.statement); 
       console.log("flQuestionCrud - Success Question id " + data._id); 
       return data; 
       //$state.go('questionUpdate'); 
      } 
     } 

     // Try/catch 
     function createQuestionDataAsync(questionData, cb) { 
      console.log("flQuestionCrud - Before Call to create ") 
      flQuestion.create(questionData, function(data) { 
       console.log("flQuestionCrud - After Call to create ") 
       if (!data){ 
        return cb("Error Creating Data"); 
        //return null; 
       } 
       try { 
        console.log("flQuestionCrud - Try Section - Success " + data); 
        console.log("flQuestionCrud - Try Section - Success Statement " + data.statement); 
        console.log("flQuestionCrud - Try Section - Success Question id " + data._id); 
       } 
       catch (err) { 
        return cb("Error Creating Data"); 
        //return null; 
       } 
       return cb(null,data); 
       //return data; 
      }); 
     } 

     createQuestionDataAsync(newQuestionData,questionCallBack); 

Antwort

0

Ihr Rückruf ist der Knoten Callback-Stil Angular nicht diese Art von Rückruf nicht verwendet der Rückgabewert enthält data Feld, in dem die eigentliche Reaktion gespeichert

Dies setzt voraus... Sie verwenden $http