У меня есть приложение в angularjs, которое портировано на angular4.
Я хотел бы создать провайдера в angular4 и добавить его в app.config в angularJS.
RightТеперь у меня есть следующее
import { UtilsService } from './../utils/utils.service';
import { Injectable, Inject } from '@angular/core';
import { downgradeInjectable } from '@angular/upgrade/static';
import { TranslateService } from '@ngx-translate/core';
import { ENGLISH } from '../../../../../languages/locale-en';
import { JAPANESE } from '../../../../../languages/locale-ja';
declare const angular: angular.IAngularStatic;
// USED to setup translation for angular4 from angularjs
@Injectable()
export class Angular4TranslateProvider{
constructor(@Inject(TranslateService) public _translate: TranslateService) {}
SetupAngular4Translation(){
this._translate.setDefaultLang(UtilsService.DefaultLanguage());
this._translate.use(UtilsService.DefaultLanguage());
this._translate.setTranslation('en', ENGLISH );
this._translate.setTranslation('jp', JAPANESE );
}
Use(lg:string){
this._translate.use(lg);
}
}
angular.module('b-eee').factory('angular4TranslateProvider', downgradeInjectable(Angular4TranslateProvider));
Это добавлено в App.Module:
providers: [
Angular4TranslateProvider
],
И я пытаюсь вызвать его внутри моего app.config:
import { app } from './main';
(function() {
'use strict';
app.value('$routerRootComponent', 'app')
app.config(["$routeProvider"
, "angular4TranslateProvider"
, function(
$routeProvider
, angular4TranslateProvider
) {
но у меня ошибка при загрузке страницы:
Ошибка: [$ injector: unpr] Неизвестный поставщик: angular4TranslateProvider.
Как я могу заставить его работать?
извините, демонстрация на plunker довольно сложна, чтобы дать
РЕДАКТИРОВАТЬ: провайдер работает везде из моего приложения angularJS, но я хочу дать проход, у него есть провайдер внутри app.config.js, поэтому основнойкомпонент приложения.Только там он вернет undefined.