From a738985aa407389ee121ccdbb9628b769c3d6476 Mon Sep 17 00:00:00 2001 From: sis0k0 Date: Wed, 7 Dec 2016 16:34:56 +0200 Subject: [PATCH 1/2] fix(router): export module loader, don't use it by default --- nativescript-angular/router.ts | 13 +++---------- .../router/ns-module-factory-loader.ts | 2 +- 2 files changed, 4 insertions(+), 11 deletions(-) diff --git a/nativescript-angular/router.ts b/nativescript-angular/router.ts index 93363fb45..1b85e0ddf 100644 --- a/nativescript-angular/router.ts +++ b/nativescript-angular/router.ts @@ -1,4 +1,4 @@ -import { NgModule, ModuleWithProviders, NO_ERRORS_SCHEMA, NgModuleFactoryLoader } from "@angular/core"; +import { NgModule, ModuleWithProviders, NO_ERRORS_SCHEMA } from "@angular/core"; import { RouterModule, Routes, ExtraOptions } from "@angular/router"; import { LocationStrategy, PlatformLocation } from "@angular/common"; import { NSRouterLink } from "./router/ns-router-link"; @@ -8,7 +8,7 @@ import { NSLocationStrategy, LocationState } from "./router/ns-location-strategy import { NativescriptPlatformLocation } from "./router/ns-platform-location"; import { RouterExtensions } from "./router/router-extensions"; import { NativeScriptModule } from "./nativescript.module"; -import { NsModuleFactoryLoader } from "./router/ns-module-factory-loader"; +export { NSModuleFactoryLoader } from "./router/ns-module-factory-loader"; export { PageRoute } from "./router/page-router-outlet"; export { RouterExtensions } from "./router/router-extensions"; @@ -42,14 +42,7 @@ export type LocationState = LocationState; }) export class NativeScriptRouterModule { static forRoot(routes: Routes, config?: ExtraOptions): ModuleWithProviders { - let moduleWithProviders = RouterModule.forRoot(routes, config); - - // Override the stock SystemJsNgModuleLoader - moduleWithProviders.providers.push( - { provide: NgModuleFactoryLoader, useClass: NsModuleFactoryLoader }, - ); - - return moduleWithProviders; + return RouterModule.forRoot(routes, config); } static forChild(routes: Routes): ModuleWithProviders { diff --git a/nativescript-angular/router/ns-module-factory-loader.ts b/nativescript-angular/router/ns-module-factory-loader.ts index 17fa0d97d..b4650141a 100644 --- a/nativescript-angular/router/ns-module-factory-loader.ts +++ b/nativescript-angular/router/ns-module-factory-loader.ts @@ -13,7 +13,7 @@ const FACTORY_CLASS_SUFFIX = "NgFactory"; const FACTORY_PATH_SUFFIX = ".ngfactory"; @Injectable() -export class NsModuleFactoryLoader implements NgModuleFactoryLoader { +export class NSModuleFactoryLoader implements NgModuleFactoryLoader { private offlineMode: boolean; constructor(private compiler: Compiler) { From 601a23c081bf544cfaf5f199e15a58c6cde08317 Mon Sep 17 00:00:00 2001 From: sis0k0 Date: Wed, 7 Dec 2016 17:17:10 +0200 Subject: [PATCH 2/2] spec: update test app to use exported module provider --- ng-sample/app/app.ts | 14 +++++++------- tests/app/main.ts | 4 +++- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/ng-sample/app/app.ts b/ng-sample/app/app.ts index 9ebba8f55..1bf129fe7 100644 --- a/ng-sample/app/app.ts +++ b/ng-sample/app/app.ts @@ -6,17 +6,17 @@ //profiling.start("application-start"); // "nativescript-angular/application" import should be first in order to load some required settings (like globals and reflect-metadata) -import { - NativeScriptModule, - platformNativeScriptDynamic, - NativeScriptRouterModule, +import { + NativeScriptModule, + platformNativeScriptDynamic, + NativeScriptRouterModule, NativeScriptFormsModule, NativeScriptHttpModule, - routerTraceCategory, + routerTraceCategory, rendererTraceCategory, listViewTraceCategory, - PAGE_FACTORY, - PageFactory, + PAGE_FACTORY, + PageFactory, PageFactoryOptions, onAfterLivesync, onBeforeLivesync diff --git a/tests/app/main.ts b/tests/app/main.ts index 06cba2489..2eee7ad8f 100644 --- a/tests/app/main.ts +++ b/tests/app/main.ts @@ -5,6 +5,7 @@ import { routerTraceCategory, NativeScriptRouterModule, NativeScriptFormsModule, + NSModuleFactoryLoader, APP_ROOT_VIEW } from "nativescript-angular"; import { AppComponent } from "./app.component"; @@ -23,7 +24,7 @@ import { SinglePageMain, routes as singlePageRoutes } from "./single-page-main.c import { LazyLoadMain, routes as lazyLoadRoutes } from "./lazy-load-main"; import { FirstComponent } from "./first.component"; import { SecondComponent } from "./second.component"; -import { OpaqueToken, NgModule } from "@angular/core"; +import { OpaqueToken, NgModule, NgModuleFactoryLoader } from "@angular/core"; import { PageNavigationApp } from "./snippets/navigation/page-outlet"; import { NavigationApp } from "./snippets/navigation/router-outlet"; @@ -137,6 +138,7 @@ class MultiPageModule { } providers: [ rootViewProvider, lazyLoadHooksLogProvider, + { provide: NgModuleFactoryLoader, useClass: NSModuleFactoryLoader }, ] }) class LazyLoadModule { }