В настоящее время создаю уменьшенную версию приложения для плунжера, чтобы я мог ПОКАЗАТЬ вам свою проблему, но в случае, если у кого-нибудь есть какие-то подсказки, я постараюсь описать мою проблему первый.
Я использую ngUpgrade, чтобы начать перенос большого приложения из AngularJS в Angular. У меня есть основное приложение, работающее с использованием Angular. Вкратце это настроено так:
@Component({
selector: '[my-app]',
template: `
<app-main></app-main>
`
})
export class AppComponent {};
@NgModule({
imports: [
BrowserModule,
UpgradeModule,
],
bootstrap: [AppComponent],
declarations: [
AppComponent
],
schemas: [
CUSTOM_ELEMENTS_SCHEMA
]
})
export class AppModule {
constructor(public upgrade: UpgradeModule) { }
}
export const Ng1AppModule = angular.module(
'mainApp',
[
'feature.one'
]
);
platformBrowserDynamic().bootstrapModule(AppModule).then(ref => {
ref.instance.upgrade.bootstrap(document.body, [Ng1AppModule.name], {});
});
Он успешно загружается и запускает корневой компонент, который по существу загружает старое приложение AngularJS. Пока что никаких серьезных проблем нет.
Приложение AngularJS зависит от множества пользовательских функциональных модулей, которые мне теперь нужно преобразовать в Angular.
На одном из функциональных модулей я хочу преобразовать сервис. Теперь это встроенный в Angular @Injectable машинописный текст, и он назначен модулю AngularJS следующим образом:
export const Ng1FeatureModule = angular
.module('feature.one', ['ngCookies'])
.service('UpgradedService', downgradeInjectable(UpgradedService) as any);
Для этого сервиса требуется зависимость от сервиса, который я еще даже не конвертировал.
Пример:
@Injectable()
export class UpgradedService{
public var1: string;
constructor(private nonconvertedNG1Service: NonconvertedNG1Service) {
this.var1 = nonconvertedNG1Service.get();
}
public getVar1() {
return this.var1;
}
}
Как мне нужно настроить вещи так, чтобы мое примерное приложение использовало UpgradedService, а UpgradedService могло использовать NonconvertedNG1Service?