Javascript 在AngularJS中缓存国际化JSON数据

Javascript 在AngularJS中缓存国际化JSON数据,javascript,angularjs,json,Javascript,Angularjs,Json,在这里,我在我的应用程序中创建了多语言概念,它工作正常,但每个字段都加载了语言(.json)文件,因此应用程序加载需要时间,我的要求是我只加载一次.json来获取所有数据,如何在angularJs中执行,提前感谢您的帮助 请检查下面的链接也 var语言='en'; app.directive('telBasictext',['$http','teli18nservice', 函数($http,teli18n服务){ 返回{ 限制:“AEC”, 要求:'ngModel', 范围:{ ngMode

在这里,我在我的应用程序中创建了多语言概念,它工作正常,但每个字段都加载了语言(.json)文件,因此应用程序加载需要时间,我的要求是我只加载一次.json来获取所有数据,如何在angularJs中执行,提前感谢您的帮助

请检查下面的链接也

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);
    });
}