我从家庭控制器调用getLanguageSpecificData(LangCode)
服务并将数据保存到localStorage
。在主页上有Language
个链接,如果用户点击英语,则会重定向到第二个模板。但问题是仍然是家庭控制器getLanguageSpecificData(LangCode)
服务未完成其执行。所以当我试图从localStorage
获得结果时,在第二个控制器中它是不正确的(未更新)。
所以,请你说出在这种情况下哪种方法更好?
HomeController代码:
app.controller('homeController',function($scope,$localStorage,$appService){
$scope.loadlanguagefile = function(langcode){
$troubleshootingService.getLanguageSpecificData(LangCode).then(function(responce){
$localStorage.data = responce.data;
});
}
});
当用户单击Enlgish链接并且应用程序重定向到第二个模板时,将调用'loadlanguagefile'函数。这是第二个控制器代码:
app.controller('secondController',function($scope,$localStorage){
$scope.data = $localStorage.data;
});
答案 0 :(得分: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-在方法调用中启用英文单击。