2014-01-28 178 views
0

我試圖從對角JS控制器的服務傳遞數據,代碼如下:將數據傳遞給控制器​​

.controller('lista',function($scope,cetrams){ 
    $scope.hola="This is it"; 

    var test; 
    var testfn = function(){ 
     test = 'Lala'; 
    }; 

    cetrams.success(function(data){ 
     testfn(); 
     test = data; 
     console.log('Inside service: '+test); 
    }); 

    console.log('Inside controller: '+test); 

}) 

該服務工作,因爲我得到的承諾,執行成功函數,但我無法將該函數之外的變量獲取到控制器範圍。

+0

我不能回答我的問題,但我已經想通了,會發生什麼,從外面是連續的console.log運行沒有等待成功的承諾,但實際範圍變量正在有效更新。 –

回答

2

如果你期待值可用在最後一行

console.log('Inside controller: '+test);

,那麼你是不正確的。由於代碼的異步特性,最後一行將在服務返回數據之前執行。

您的邏輯應在取得成功的方法來進行,或者使用$scope.$watch觀看測試變量的變化

+0

謝謝,我發佈之後意識到它,並試圖回答這個問題,但我不能,因爲我沒有足夠的分數。 –