2015-09-17 2 views
4

I осуществляет угловую перевести в моем проекте, и все работает отлично, но когда я переехал мой $translateProvider из моего config блока к моему controller.js, я получаю эту ошибку:

Unknown provider: $translateProviderProvider <- $translateProvider <- myController

Но каждый модуль, кажется, правильно ссылается, я что-то упустил? или, может быть, эти переводы не могут работать внутри контроллера?

controller.js

angular.module('myapp.controller', ['pascalprecht.translate']) 

    .controller('myController', 
     ['$translateProvider', 
     function ($translateProvider) { 

      function init() { 
       $translateProvider.useUrlLoader('myweb.com/api/lang', { 
        queryParameter : 'en_US' 
       }); 
       $translateProvider.preferredLanguage('en_US'); 
      } 

      init(); 
    }]); 

UPDATE

Теперь я знаю, что $ translateProvider не доступны, чтобы использовать его в классе контроллера.

То, что я пытаюсь выполнить:

Я не хочу, чтобы загрузить все файлы TRADUCTIONS от остальных, потому что есть много компонентов, которые пользователь никогда не увидит, так что если я иду на страницу, содержит ng-controller = «myController», функция init() должна вызывать остальные и получать трайдеры только для текущего компонента. Я нашел это на документации:

angular.module('contact') 
.controller('ContactCtrl', function ($scope, $translatePartialLoader) { 
    $translatePartialLoader.addPart('contact'); 
}); 

Но как я могу:

  1. Укажите URL-адрес для моего REST?
  2. Укажите параметр «контакт» в URL-адресе моего REST, чтобы знать, что он должен получать мне трайдеры только для контактного компонента.

ответ

4

При инъекции поставщика в контроллер вам не нужен суффикс провайдера.

просто вводить его

.controller('myController', ['$translate', function ($translate) { ... }]) 
+0

Привет @NeilS но после этого изменения я получаю сообщение об ошибке: $ translate.useUrlLoader не является функцией – RicardoGonzales

+0

перевести сервис не имеет этот метод доступен, он выглядит как эти методы доступны только для использования в конфигурации вашего углового приложения. Я не уверен, что вы пытаетесь выполнить, но вы должны проверить переводные документы о том, как (и почему) использовать службу перевода - https://angular-translate.github.io/docs/#/ guide/03_using-translate-service –

+0

см. мой обновленный вопрос. – RicardoGonzales

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