diff --git a/apps/navbar/src/main.single-spa.ts b/apps/navbar/src/main.single-spa.ts index 9d3917a..1ebd4ee 100644 --- a/apps/navbar/src/main.single-spa.ts +++ b/apps/navbar/src/main.single-spa.ts @@ -10,7 +10,7 @@ const lifecycles = singleSpaAngular({ const platformRef = platformBrowser(provideSingleSpaPlatform()); return bootstrapApplication(AppComponent, appConfig, { platformRef }); }, - template: '', + template: () => '', NgZone: 'noop', Router, NavigationStart, diff --git a/libs/single-spa-community-angular/internals/src/dom.ts b/libs/single-spa-community-angular/internals/src/dom.ts index b05ad9b..1e680f6 100644 --- a/libs/single-spa-community-angular/internals/src/dom.ts +++ b/libs/single-spa-community-angular/internals/src/dom.ts @@ -14,8 +14,12 @@ export function getContainerElementAndSetTemplate HTMLElement; export interface BaseSingleSpaAngularOptions { - template: string; + template: string | ((props: AppProps) => string); domElementGetter?: DomElementGetter; bootstrapFunction(props: AppProps): Promise | ApplicationRef>; } diff --git a/libs/single-spa-community-angular/src/single-spa-angular.ts b/libs/single-spa-community-angular/src/single-spa-angular.ts index 9d74eb9..72f76a4 100644 --- a/libs/single-spa-community-angular/src/single-spa-angular.ts +++ b/libs/single-spa-community-angular/src/single-spa-angular.ts @@ -31,8 +31,8 @@ export function singleSpaAngular(userOptions: SingleSpaAngularOptions): Li throw Error('single-spa-angular must be passed an options.bootstrapFunction'); } - if (typeof options.template !== 'string') { - throw Error('single-spa-angular must be passed options.template string'); + if (typeof options.template !== 'string' && typeof options.template !== 'function') { + throw Error('single-spa-angular must be passed options.template string or function'); } if (!options.NgZone) {