I have an app in angularjs, that is ported to angular4.
I would like to create a provider in angular4, and inject it in the app.config in angularJS.
Right now, I have the following
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));
It is added to the App.Module :
providers: [
Angular4TranslateProvider
],
And I am trying to call it inside my app.config :
import { app } from './main';
(function() {
'use strict';
app.value('$routerRootComponent', 'app')
app.config(["$routeProvider"
, "angular4TranslateProvider"
, function(
$routeProvider
, angular4TranslateProvider
) {
but I have an error on page load :
Error: [$injector:unpr] Unknown provider: angular4TranslateProvider.
How can I make it work ?
sorry, a demo on plunker is quite complicated to give
EDIT : THE Provider do work everywhere from my angularJS app, But I want to give pass it has provider inside the app.config.js so the main component of the app. Only there it will return undefined.
Angular4TranslateProviderto providers array of your app.module file?