Это вызвано обновленной службой UpgradeModule, которую вы используете здесь:
import { UpgradeModule } from '@angular/upgrade/static';
Вы используете ее, потому что хотите, чтобы UpgradeModule понизил угловой коэффициент 2 до углового JS.
Если вы вникнете в код UpgradeModule, вы можете обнаружить, что этот модуль определяет новый угловой модуль с именем $$ UpgradeModule.
Этот модуль регистрирует поставщик значений с именем $$ angularInjector (тот, который находится в ошибка выше) - эта вещь $$ angularInjector отвечает за инъекцию угловых модулей в угловые JS.
Решение заключается в том, чтобы импортировать модуль в оператор импорта, чтобы угловой JS имел доступ к его услугам.
Вы забыли импортировать UpgradeModule. Вот ответ из официальной документации :
@NgModule({
declarations: [Ng2HeroesComponent, Ng1HeroComponentWrapper],
providers: [
HeroesService,
// Register an Angular provider whose value is the "upgraded" AngularJS service
{provide: 'titleCase', useFactory: (i: any) => i.get('titleCase'), deps: ['$injector']}
],
// All components that are to be "downgraded" must be declared as `entryComponents`
entryComponents: [Ng2HeroesComponent],
// We must import `UpgradeModule` to get access to the AngularJS core services
imports: [BrowserModule, UpgradeModule]
})
class Ng2AppModule {
ngDoBootstrap() { /* this is a placeholder to stop the boostrapper from complaining */
}
}
, поэтому сначала вам нужно изменить свой код на:
ng2.module.ts:
import 'reflect-metadata';
import '@angular/core';
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { UpgradeModule } from '@angular/upgrade/static';
import { AppComponent } from './components/app/app.component.ts';
@NgModule({
imports: [ BrowserModule, UpgradeModule ],
declarations: [ AppComponent ],
entryComponents: [ AppComponent ]
})
export class Ng2Module {
ngDoBootstrap() {}
}
Также для того, чтобы понизить ваш компонент от ng2 до углового 1
Вы должны создать директиву AngularJS, которая сделает этот угловой компонент доступным внутри шаблонов AngularJS:
ng1AppModule.directive('Ng2Module', downgradeComponent({component: AppComponent}));
function downgradeComponent(info: { component: Type< This parameter is no longer used */ selectors?: string[]; }): any;
Существует очень полезный пост , в котором подробно объясняется, как создать гибридное угловое приложение, а также сценарий, когда у вас есть компонент v4, и вы хотите использовать его в шаблоне v1 .
Поскольку вы, похоже, уже используете PLSQL, почему бы не решить его там?
if user_flag='Y' then
open your_cursor for select .. (query for when flag=Y)
else
open your_cursor for select ... (query for when flag !=Y)
end if;