gpt4 book ai didi

javascript - Angular 工厂和过滤器 $http

转载 作者:行者123 更新时间:2023-11-28 07:52:17 27 4
gpt4 key购买 nike

我正在使用 AngularJS 并创建了一个模块,其中有一个工厂和一个过滤器。 Factory 获取本地 json 文件(翻译),过滤器提供返回文本翻译版本的函数。所以代码如下所示;

angular
.module('i18n', [])
.factory('translationDataFact', ['$http', function($http){

var t = {};
var user = {};
t.defaultLanguage = 'en-GB';
t.languageFile = null;

t.init = function(){
t.setLanguage();
if(!t.languageFile){
$http
.get('translations/' + t.defaultLanguage + '.json')
.success(function(data){
t.languageFile = data.strings;
})
.error(function(error){
console.log(error);
});
}
}

t.setLanguage = function(){
/* change default language to User language here */
if(user.id){
t.defaultLanguage = user.language;
}
return t.defaultLanguage;
}

t.init();

return t.languageFile;
}])
.filter('t', ['translationDataFact', function (translationDataFact) {

var translate = function (stringIdenitfier) {

var translation = translationDataFact.languageFile[stringIdenitfier];

if(translation){
return translation;
}

return "translate me!!";
};

return translate(stringIdenitfier);

}]);

然后我希望使用过滤器来翻译这样的变量和名称

{{"string" | t }}

我遇到的问题是我不知道如何确保

  1. Factory 的返回值在 Filter 运行之前设置。
  2. 此外,我对如何阻止整个应用程序渲染直到此过滤器准备就绪感到困惑?

任何帮助都会很棒,因为我迷路了:(

最佳答案

您不使用现有的 AngularJS 翻译库(如angular-translate)有什么原因吗? ?

关于javascript - Angular 工厂和过滤器 $http,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26636742/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com