Se non si desidera aggiungere controller per il tag <html>
e se si utilizza angular-translate quindi è possibile utilizzare un direttiva semplice per raggiungere lo stesso.
Angular-translates fornisce un evento $translateChangeSuccess
quando la traduzione è stata caricata correttamente o quando si modifica la lingua (presumo che userete $translate.use
per cambiare la lingua corrente). Possiamo creare una direttiva personalizzata usando quell'evento.
direttiva Snippet di codice:
function updateLanguage($rootScope) {
return {
link: function(scope, element) {
var listener = function(event, translationResp) {
var defaultLang = "en",
currentlang = translationResp.language;
element.attr("lang", currentlang || defaultLang);
};
$rootScope.$on('$translateChangeSuccess', listener);
}
};
}
angular.module('app').directive('updateLanguage', updateLanguage);
E avete aggiungere lo stesso direttiva in voi attributo HTML.
<html update-language>
fonte
2016-08-05 06:29:25
Sarebbe utile se contrassegnate una delle risposte come risposta corretta, poiché le risposte di seguito sono davvero utili. :) –