2016-10-24 44 views
0

我打電話給getLanguageSpecificData(LangCode)來自家庭控制器的服務並將數據保存到localStorage。在主頁上有Language鏈接,如果用戶點擊英文那麼它將重定向到第二個模板。但問題是,家庭控制器getLanguageSpecificData(LangCode)服務未完成其執行。因此,在第二個控制器中,當我試圖從localStorage獲得結果時,它不正確(未更新)。 那麼你能說出在這種情況下哪種方法更好嗎?將服務結果傳遞給其他控制器

HomeController的代碼:當Enlgish鏈接和應用程序用戶點擊被重定向到第二模板

app.controller('homeController',function($scope,$localStorage,$appService){  
    $scope.loadlanguagefile = function(langcode){   
     $troubleshootingService.getLanguageSpecificData(LangCode).then(function(responce){ 
      $localStorage.data = responce.data; 
     });   
    } 
}); 

「loadlanguagefile」函數被調用。這裏是secondController代碼:

app.controller('secondController',function($scope,$localStorage){ 
    $scope.data = $localStorage.data; 
}); 
+2

請添加一些代碼,以便我們檢查它。 – Sravan

回答

0

按我的建議,你應該使用回調函數做你需要充分,當調用的函數使英語點擊禁用,如果你的結果是成功製作啓用。這將是這樣的:

getLanguageSpecificData(LangCode,callback:(dataToReturn:any)=>void):any{ 
    //logic here to get data to return 

    callback(dataToReturn); 
    } 

對於調用這個方法 -

1調用該方法使英語點擊關閉之前。

2-然後調用方法 -

getLanguageSpecificData(imputLangCode,(result)=>{ 

     //logic for data modification 
     //logic to enable English click 

    }); 

3-啓用的方法的呼叫內的英文點擊。

+0

感謝您的幫助。問題是當用戶點擊'英文'鏈接,然後我在Home html頁面中寫入重定向頁面代碼:href ='#/ secondTemplate'。我們在'getLanguageSpecificData'服務成功後在'homeController'中編寫重定向代碼調用。 – SURAJ

+0

你不需要這個,如果你禁用英文鏈接,直到'getLanguageSpecificData'不會返回。技術上,您可以在服務調用成功後將代碼重定向到任何控制器。 – Viplock

相關問題