sách gpt4 ai đã đi

javascript - 如何在某些事件后加载 Angular 平移

In lại 作者:行者123 更新时间:2023-12-04 01:26:56 29 4
mua khóa gpt4 Nike

我有一个在登录事件后调用的 TranslationService,在这个服务中我想初始化 $translateProvider.translation 但这个对象似乎无法在 app.config(...) 之外访问。在服务中我想替换之前的翻译。这里有一些代码:

.config(['$translateProvider', function ($translateProvider) {        
$translateProvider.useStaticFilesLoader({
prefix: 'i18n/',
suffix: '.json'
});
$translateProvider.preferredLanguage('it');
}]);

在我的 TranslateService 中我需要类似的东西

angular.module('myapp')
.factory('TranslateService', ['$translate', $translateProvider, function($translate, $translateProvider) {
$mydata = { "LABEL": "Label" };
$translateProvider.translations('it', mydata); // injection problem
$translate.somethingLike_getProvider().translations('it', mydata); // doesn't exist
}]);

1 Câu trả lời

诀窍是存储$translateProvider在以后可以访问的变量中:

var app = angular.module('app', ['pascalprecht.translate']);
var provider = null;

app.config(function($translateProvider) {
provider = $translateProvider;
$translateProvider.translations('en', {
TITLE: 'Hello',
FOO: 'This is a paragraph.'
});
$translateProvider.preferredLanguage('en');
});

app.factory('inlineLoaderFactory', function($q) {
return function(options) {
var deferred = $q.defer();
deferred.resolve(options[options.key]);
return deferred.promise;
};
});

app.controller('MainCtrl', function($scope, $q, $translate) {
$scope.override = function() {
provider.useLoader('inlineLoaderFactory', {
en: {
TITLE: 'Hello My Friend',
FOO: 'TLDR',
CUSTOM: 'New Key'
}
});
$translate.refresh();
};
});

当需要更改翻译时,我们告诉 $translateProvider sử dụng inlineLoaderFactory translation loader service . inlineLoaderFactory 仅使用选项作为新的翻译数据。

关于javascript - 如何在某些事件后加载 Angular 平移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34676735/

29 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com