Javascript 在AngularJS中缓存国际化JSON数据
在这里,我在我的应用程序中创建了多语言概念,它工作正常,但每个字段都加载了语言(.json)文件,因此应用程序加载需要时间,我的要求是我只加载一次.json来获取所有数据,如何在angularJs中执行,提前感谢您的帮助 请检查下面的链接也Javascript 在AngularJS中缓存国际化JSON数据,javascript,angularjs,json,Javascript,Angularjs,Json,在这里,我在我的应用程序中创建了多语言概念,它工作正常,但每个字段都加载了语言(.json)文件,因此应用程序加载需要时间,我的要求是我只加载一次.json来获取所有数据,如何在angularJs中执行,提前感谢您的帮助 请检查下面的链接也 var语言='en'; app.directive('telBasictext',['$http','teli18nservice', 函数($http,teli18n服务){ 返回{ 限制:“AEC”, 要求:'ngModel', 范围:{ ngMode
var语言='en';
app.directive('telBasictext',['$http','teli18nservice',
函数($http,teli18n服务){
返回{
限制:“AEC”,
要求:'ngModel',
范围:{
ngModel:“=”,
},
模板:“”+
“{{setvalue}}”+
' ',
链接:功能(范围、IELENT、iAttrs、ngModelController){
var collecton=iAttrs.getString;
var splitValues=collecton.split(“,”);
var language=splitValues[0];//语言EN或Fr
var labelName=splitValues[1];//标签名
var moduleName=splitValues[2];//模块名称(全局或本地)
teli18nservice.getdata(moduleName).success(函数(数据){
scope.setvalue=数据[labelName];
})
.错误(函数(错误){
scope.setvalue=“无标签”;
});
}
};
}
]);
将JSON请求的结果本地存储在您的teli18n服务
服务中,并将该数据返回给后续调用getdata
。它看起来像这样:
// teli18nservice
var jsonData;
this.getData = function () {
if (jsonData) {
return $q.resolve(jsonData);
}
$http.get().then(function (res) {
jsonData = res.data;
return jsonData;
});
}
或者,看一看。可能您应该使用$http缓存 示例取自:
这是一个例子。它使用$http的缓存。你比我早了41秒!;)我编辑了我的帖子,但你真的应该看看我也发布的链接!你会发现更详细的信息。
// teli18nservice
var jsonData;
this.getData = function () {
if (jsonData) {
return $q.resolve(jsonData);
}
$http.get().then(function (res) {
jsonData = res.data;
return jsonData;
});
}
var cache = $cacheFactory('myCache');
var data = cache.get(someKey);
if (!data) {
$http.get(url).success(function(result) {
data = result;
cache.put(someKey, data);
});
}