2014-06-25 88 views
0

我已經編寫了一個名爲getChildren的方法來獲取與id相關的數據,但我無法在調用方法中訪問該數據。我的示例代碼如下如何從回調中訪問數據

我已經寫在控制這兩種方法,並通過所必需的所有對象

var baseMethod = function(rootNode) { 
var id = 123; 

var result = getChildren(id); 
}; 


var getChildren = function(id) { 
var deferred = $q.defer(); 

return dummyService.oneAction(id).then(
    function (data) { 
     return deferred.resolve(data); 
    } 
); 
} 

哪些錯誤與此有關。我想將回調中的數據分配給我的結果。我怎樣才能做到這一點。

+0

是'dummyService.oneAction'返回一個承諾? – Mendhak

+0

是的。我在回調函數中獲得正確的數據。 – IfOnly

回答

0

你發揮的getChildren返回一個承諾,所以儘量

var baseMethod = function(rootNode) { 
    var id = 123; 
    var result; 

    getChildren(id).then(function(data) { 
    result = data; 
    }); 
}; 
+0

我試過了。它不工作。我的執行流程向前發展,但回調沒有被調用。所以我得到了undefined的結果。 – IfOnly

0
var result = getChildren(id).then(function(data){ 

angular.copy(data, $scope.child) 
}); 
+0

我的執行流程仍在繼續,但我的回調沒有被調用。因此,當我試圖訪問它時,我在$ scope.child中獲得'undefined' – IfOnly

+0

使用'then'調用請參閱編輯代碼 – sylwester

+0

仍然是同樣的問題。如果在這次調用之後嘗試使用$ scope.child,則會出現「未定義」錯誤。這是因爲回調仍然沒有執行 – IfOnly

相關問題