角度路由停止使用ngUpgrade

时间:2018-02-18 17:30:26

标签: angular angular-routing angular-upgrade

我正在将AngularJS 1.5.X应用程序升级到Angular 4.3.0。我设法成功引导应用程序并在AngularJS屏幕上使用Angular组件,直到我必须将AngularJS服务升级到Angular以用于Angular组件。 我必须按照升级指南中的描述创建一个提供程序,然后我开始收到AngularJS $ injector未定义的错误。

所以我将AngularJS引导逻辑移到了AppModule而不是main.ts.之后错误消失但路由已停止工作,因此ng-view无效。

我的代码App.Module.ts如下: -

 function getSomeService(i: IInjectorService): IConfig {   return
 i.get('someService'); }

 function getScope(i: IInjectorService): angular.IRootScopeService {  
 return i.get('$rootScope'); }

 @NgModule({   
 imports: [
     BrowserModule,
     FormsModule,
     HttpClientModule,
     UpgradeModule   ],   

 declarations: [
     AppComponent,
     RootComponent,
     NavigationHeaderComponent ],   

 providers: [
     {
       provide: '$scope',
       useFactory: getScope,
       deps: ['$injector']
     },
     {
       provide: 'someService',
       useFactory: getService,
       deps: ['$injector']
     }   ],   

   entryComponents: [
     AppComponent,
     RootComponent   ] })

 export class AppModule {  
  constructor(private upgrade: UpgradeModule) {   }

   public ngDoBootstrap(app: ApplicationRef): void {
     this.upgrade.bootstrap(document.documentElement, ['app']);
     app.bootstrap(AppComponent);   }

main.ts

platformBrowserDynamic().bootstrapModule(AppModule);

App.Component.ts

@Component({   selector: 'my-app',   template: `<div class="ng-view"></div>` })   export class AppComponent {}

的index.html

   <div>    <my-app></my-app> </div>

0 个答案:

没有答案