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) {