Ich habe diese Themen Angular CLI generated app with Web Workers und https://github.com/kaikcreator/angular-cli-web-worker zum Ausführen meiner gesamten angular4-Anwendung in Web-Worker verwendet.Verwenden Sie Router in eckig2/4 im Webworker
Meine letzte Frage ist "Wie benutze eckigen Router mit angular4 Anwendung vollständig in Webworker läuft".
Mein Problem ist, wenn ich
import { Routes, RouterModule } from '@angular/router';
verwenden
in AppModule, habe ich diesen Fehler:
zone.js:690 Unhandled Promise rejection: No provider for PlatformLocation! ; Zone: <root> ; Task: Promise.then ; Value: Error: No provider for PlatformLocation!
at injectionError (core.es5.js:1169)
at noProviderError (core.es5.js:1207)
at ReflectiveInjector_../node_modules/@angular/core/@angular/core.es5.js.ReflectiveInjector_._throwOrNull (core.es5.js:2649)
at ReflectiveInjector_../node_modules/@angular/core/@angular/core.es5.js.ReflectiveInjector_._getByKeyDefault (core.es5.js:2688)
at ReflectiveInjector_../node_modules/@angular/core/@angular/core.es5.js.ReflectiveInjector_._getByKey (core.es5.js:2620)
at ReflectiveInjector_../node_modules/@angular/core/@angular/core.es5.js.ReflectiveInjector_.get (core.es5.js:2489)
at resolveNgModuleDep (core.es5.js:9492)
at _callFactory (core.es5.js:9558)
at _createProviderInstance$1 (core.es5.js:9506)
at initNgModule (core.es5.js:9456) Error: No provider for PlatformLocation!
at injectionError (http://localhost:4200/webworker.bundle.js:35604:90)
at noProviderError (http://localhost:4200/webworker.bundle.js:35642:12)
at ReflectiveInjector_../node_modules/@angular/core/@angular/core.es5.js.ReflectiveInjector_._throwOrNull (http://localhost:4200/webworker.bundle.js:37084:19)
at ReflectiveInjector_../node_modules/@angular/core/@angular/core.es5.js.ReflectiveInjector_._getByKeyDefault (http://localhost:4200/webworker.bundle.js:37123:25)
at ReflectiveInjector_../node_modules/@angular/core/@angular/core.es5.js.ReflectiveInjector_._getByKey (http://localhost:4200/webworker.bundle.js:37055:25)
at ReflectiveInjector_../node_modules/@angular/core/@angular/core.es5.js.ReflectiveInjector_.get (http://localhost:4200/webworker.bundle.js:36924:21)
at resolveNgModuleDep (http://localhost:4200/webworker.bundle.js:43927:25)
at _callFactory (http://localhost:4200/webworker.bundle.js:43993:28)
at _createProviderInstance$1 (http://localhost:4200/webworker.bundle.js:43941:26)
at initNgModule (http://localhost:4200/webworker.bundle.js:43891:28)
Offizielle angular4 Webworker Dokumentation leider nicht vorhanden ....
Thx für die Hilfe!
EDIT:
main.ts:
import { enableProdMode } from '@angular/core';
import { bootstrapWorkerUi, WORKER_UI_LOCATION_PROVIDERS } from '@angular/platform-webworker';
import { environment } from './environments/environment';
if (environment.production) {
enableProdMode();
}
bootstrapWorkerUi('../webworker.bundle.js', WORKER_UI_LOCATION_PROVIDERS);
WORKER_UI_LOCATION_PROVIDERS ist hier nutzlos. Ich sah (irgendwo im Internet), das ist der gute Weg.
app.module.ts
import { WorkerAppModule } from '@angular/platform-webworker';
import { NgModule } from '@angular/core';
import { AppComponent } from './app.component';
import { AppRoutingModule } from './app-routing.module';
import { CoreModule } from './core/core.module';
import { APP_BASE_HREF } from '@angular/common';
import { environment } from '../environments/environment';
@NgModule({
declarations: [
AppComponent
],
imports: [
WorkerAppModule,
CoreModule.forRoot(),
AppRoutingModule,
],
providers: [
{ provide: APP_BASE_HREF, useValue: environment.baseHref },
],
bootstrap: [AppComponent]
})
export class AppModule { }
meine app-routing.module.ts
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
export const routes: Routes = [
// { path: '', redirectTo: 'pages', pathMatch: 'full'},
// { path: '', loadChildren: './main-layout/main-layout.module#MainLayoutModule' },
{ path: '**', redirectTo: '', pathMatch: 'full'},
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule {}
Vielen Dank, um zu antworten. Ich verwende nicht "NativeScript". Ich verstehe "NativeScript" ist "nur" für dev eckige App auf dem Handy, nein? Dafür benutze ich Cordova (ohne Ionic habe ich keine Zeit mein Projekt darauf zu migrieren). Ich werde meine Frage zu früheren Dateien bearbeiten. – dochosa