I have an upgrade / hybrid AngularJS / Angular 2 app and I'm getting this error:
Unhandled Promise rejection: Cannot add property resumeBootstrap, object is not extensible ; Zone: ; Task: Promise.then ; Value: TypeError: Cannot add property resumeBootstrap, object is not extensible at UpgradeModule.bootstrap (upgrade_module.ts:259)
The source code at that location is:
// Make sure resumeBootstrap() only exists if the current bootstrap is deferred
const windowAngular = (window as any)['angular'];
windowAngular.resumeBootstrap = undefined;
My code was working fine. Pulling in the latest Angular changes seemed to cause this.
Here's my bootstrapping code:
import {platformBrowser} from '@angular/platform-browser';
import {UpgradeModule} from '@angular/upgrade/static';
import {AppModuleNgFactory} from './app_module.ngfactory';
angular.element(document.body).ready(() => {
platformBrowser()
.bootstrapModuleFactory(AppModuleNgFactory)
.then(platformRef => {
const upgrade =
platformRef.injector.get(UpgradeModule) as UpgradeModule;
// This is the line that fails:
upgrade.bootstrap(document.body, ['foo-obfuscated'], {strictDi: false});
});
Update: I tried moving upgrade.bootstrap
call to ngDoBootstrap
in my AppModule
like in the Angular upgrade docs example, but that didn't change anything.