2014-09-09 6 views
0

Я начал разрабатывать веб-приложение Angularjs, и я использую angular-translate в своем приложении, и я не знаю, как наилучшим образом использовать угловой перевод, когда у меня разные взгляды.angular-translate between different views

Я установил в своем приложении файлы с угловым-переводом-загрузчиком-статическими файлами, и я бы хотел, чтобы у меня была кнопка языка в заголовке моего шаблона при изменении языка текущего вида. Мнения разделяются на разных контроллерах и в моем index.html:

<div ng-controller='HeaderController'> 
<button ng-click="changeLanguage('pt')" translate="BUTTON_LANG_PT"></button> 
     <button ng-click="changeLanguage('en')" translate="BUTTON_LANG_EN"></button> 
</div> 

Мой перевод модуль:

angular.module('elapApp.translate', ['pascalprecht.translate']) 

.config(['$translateProvider', function($translateProvider) { 
    // configures staticFilesLoader 
    $translateProvider.useStaticFilesLoader({ 
    prefix: 'messages/locale-', 
    suffix: '.json' 
    }); 
    // load 'en' table on startup 
    $translateProvider.preferredLanguage('pt'); 
}]) 
.controller('HeaderController', ['$translate', '$scope', function ($translate, $scope) { 

    $scope.changeLanguage = function (langKey) { 
    $translate.use(langKey); 
    }; 
}]); 

view.html пример:

<table class="table table-striped table-bordered"> 
      <thead> 
       <th translate>AUTHOR_NAME</th> 
       <th translate>AUTHOR_BIOGRAPHY</th> 
       <th translate>AUTHOR_WEBSITE</th> 
       <th translate>COMMON_ACTION</th> 
      </thead> 
      <tbody> 
       <tr ng-repeat="data in authors"> 
        <td>{{data.author_name}}</td> 
        <td>{{data.author_biography}}</td> 
        <td>{{data.author_website}}</td> 
        <td><a href="#/edit-author/{{data.author_id}}" class="btn">&nbsp;<i class="glyphicon glyphicon-edit"></i> Edit Author</a> 
        </td> 
       </tr> 
      </tbody> 
     </table> 

И вид модуля:

angular.module('elapApp.authors', ['elapApp.services','ngRoute', 'elapApp.translate']) 

.config(['$routeProvider', 
    function($routeProvider) { 
     $routeProvider.when('/', { 
     title: 'Authors', 
     templateUrl: 'partials/authors/authors.html', 
     controller: 'AuthorsCtrl' 
     }).when('/authors', { 
      templateUrl: 'partials/authors/authors.html', 
      controller: 'AuthorsCtrl' 
     }); 
    } 
]) 

.controller('AuthorsCtrl', ['$scope', 'Authors', function($scope, Authors) { 
    Authors.getAuthors().then(function(data){ 
     $scope.authors = data.data; 
    }); 

}]).run(['$location', '$rootScope', 
    function($location, $rootScope) { 
     $rootScope.$on('$routeChangeSuccess', function(event, current, previous) { 
      $rootScope.title = current.$$route.title; 
     }); 
    } 
]); 

Итак, в этом случае n Я щелкнул по языковой кнопке, все данные на моем заголовке меняют язык правильно, но, на мой взгляд, ничего не происходит. Как я могу изменить язык своего представления в этой ситуации?

Вы можете мне помочь?

Спасибо. Всего наилучшего!

+0

Я думаю, что API является "$ translate.uses", а не "... использовать"? – benek

+0

Нет @benek, например, вы можете увидеть http://angular-translate.github.io/docs/#/guide/07_multi-language – Bgarbarek

+0

Вы правы! – benek

ответ

0

Я новичок в угловом, и я не вижу, где вы определили представление, находится ли он в области HeaderController?

Я думаю, по крайней мере, HeaderController должен охватывать view.html, формат, как:

<div ng-controller='HeaderController'> 
    <ng-view> 
</div>