2016-09-19 41 views
0

使用AngularJS從API獲取數據我使用Angular製作服務和控制器。我從服務中獲取數據並從控制器中使用它。 我有一個數據輸入的驗證功能來檢查重複密鑰,服務將通過發送密鑰輸入到服務器。 單擊保存時,從控制器調用函數Validate(),從Validate()調用服務CheckExistedKey()。 和我有類似下面AngularJS完成後獲取http服務的結果

if(validate() == true){ 
    alert(''); //something to do 
} 

一條線,像下面

var defer = $q.defer(); 
var checkExistedKey = function (key){ 
    return $http.get('http://localhost:2807/api/Event/CheckExistedkey?key=' + key 
     ).then(function (results) { 
      defer.resolve(results.data); 
      return defer.promise(); 
     }); 
} 

的服務,但警報的驗證()函數之前調用。 我已經把$ q.defer放在服務中,但沒有任何改變。 請幫幫我。

回答

0

在驗證還需要添加回調函數 -

function validate(){ 
    var deferredRequest = checkExistedKey(); 
     deferredRequest.then(function (success) { 
      return true; 
     } 
} 

請參閱本 - example

+0

它仍然無法正常工作。 validate()的結果未定義 –

+0

您能分享您的驗證功能代碼嗎? – Disha

+0

'function validate(){0} {var deferRequest = EventService.checkExistedKey($ scope.Event.eventKey); deferRequest.then(function(result){ return result; }); }' 我nomalized一切,所以你可以理解 –

相關問題