2016-11-17 6 views
0

Я создаю проект с интернационализацией, где метки будут в /conf/lang/lang_{{lang}}/labels.js, которые будут включены в индекс .html. Настройка переменной lang - rootscope в app.run(). Index.html

<script ng-src="{{labelUrl}}"></script> 

app.js - бег()

$rootScope.$on('$locationChangeStart', function (event, next, current) 
    { 

     if($cookieStore.get("config_details") != undefined) 
     { 
      $rootScope.language = $cookieStore.get("config_details").language; 
     } 
     else 
     { 
      $rootScope.language = 'english'; 
     } 
     $rootScope.labelUrl = "conf/lang/lang_"+$rootScope.language+"/labels.js"; 
}) 

Этот файл сценария загружается правильно на URL меняется, но когда обновление вручную значение $ rootscope разрушает и файл сценария загружается после того, как Загружается содержимое html. Кто-нибудь поможет мне решить это!

ответ

1

Да, когда вы пытаетесь перезагрузить страницу, все будет уничтожено. Посмотрите на эту

var myApp = angular.module('myApp', ['ngCookies']); 

    myApp.controller('MainController', ['$scope', '$rootScope', '$cookies', '$timeout', function($scope, $rootScope, $cookies, $timeout) { 
     if ($cookies.get('lang')) { 
     $scope.debug = "Browser has got cookies"; 
     $rootScope.language = $cookies.get('lang'); 
     } else { 
     $scope.debug = "Browser does not have cookies"; 
     $timeout(function() { 
      $cookies.put('lang', 'en'); 
      $rootScope.language = 'en'; 
      $scope.debug = "Browser has got cookies"; 
     }, 2000); 
     } 
    }]); 

Example

Try angular-translate

+0

Но куки будут доступны в порядке? с tht я могу переназначить для корнеплодов na? – Indhu

+0

Да, вы правы. Затем вы должны получить значения из файла cookie и задать область действия до этого. –

+0

okey, как это сделать, прежде чем загружать содержимое html. – Indhu

 Смежные вопросы

  • Нет связанных вопросов^_^