Stephen2
Stephen2

Reputation: 57

NativeScript/Angular2 - No provider for ViewUtils

Trying to make a very simple (tutorial like) NativeScript/Angular2 app.

I've just got up to adding a router, and a "base" component that has a <page-router-outlet> for changing views/navigating.

After adding this setup, copied mostly from here: https://github.com/NativeScript/sample-Groceries I'm now getting an error:

JS: Angular 2 is running in the development mode. Call enableProdMode() to enable the production mode.
JS: EXCEPTION: Uncaught (in promise): Error: No provider for ViewUtils!
JS: ORIGINAL STACKTRACE:
JS: Error: Uncaught (in promise): Error: No provider for ViewUtils!
JS:     at resolvePromise (/data/data/org.nativescript.wva/files/app/tns_modules/nativescript-angular/zone.js/dist/zone-nativescript.js:416:31)
JS:     at /data/data/org.nativescript.wva/files/app/tns_modules/nativescript-angular/zone.js/dist/zone-nativescript.js:393:13
JS:     at ZoneDelegate.invoke (/data/data/org.nativescript.wva/files/app/tns_modules/nativescript-angular/zone.js/dist/zone-nativescript.js:190:28)
JS:     at Object.onInvoke (/data/data/org.nativescript.wva/files/app/tns_modules/nativescript-angular/node_modules/@angular/core/bundles/core.umd.js:6206:41)
JS:     at ZoneDelegate.invoke (/data/data/org.nativescript.wva/files/app/tns_modules/nativescript-angular/zone.js/dist/zone-nativescript.js:189:34)
JS:     at Zone.run (/data/data/org.nativescript.wva/files/app/tns_modules/nativescript-angular/zone.js/dist/zone-nativescript.js:83:43)
JS:     at /data/data/org.nativescript.wva/files/app/tns_modules/nativescript-angular/zone.js/dist/zone-nativescript.js:449:57
JS:     at ZoneDelegate.invokeTask (/data/data/org.nativescript.wva/files/app/tns_modules/nativescript-angular/zone.js/dist/zone-nativescript.js:223:37)
JS:     at Object.onInvokeTask (/data/data/org.nativescript.wva/files/app/tns_modules/nativescript-angular/node_modules/@angular/core/bundles/core.umd.js:6197:41)
JS:     at ZoneDelegate.invokeTask (/data/data/org.nativescript.wva/files/app/tns_modules/nativescript-angular/zone.js/dist/zone-nativescript.js:222:42)
JS: Unhandled Promise rejection: No provider for ViewUtils! ; Zone: angular ; Task: Promise.then ; Value: Error: No provider for ViewUtils! Error: No provider for ViewUtils!
JS:     at NoProviderError.Error (native)
JS:     at NoProviderError.BaseError [as constructor] (/data/data/org.nativescript.wva/files/app/tns_modules/nativescript-angular/node_modules/@angular/core/bundles/core.umd.js:1104:38)
JS:     at NoProviderError.AbstractProviderError [as constructor] (/data/data/org.nativescript.wva/files/app/tns_modules/nativescript-angular/node_modules/@angular/core/bundles/core.umd.js:1235:20)
JS:     at new NoProviderError (/data/data/org.nativescript.wva/files/app/tns_modules/nativescript-angular/node_modules/@angular/core/bundles/core.umd.js:1266:20)
JS:     at ReflectiveInjector_._throwOrNull (/data/data/org.nativescript.wva/files/app/tns_modules/nativescript-angular/node_modules/@angular/core/bundles/core.umd.js:2906:23)
JS:     at ReflectiveInjector_._getByKeyDefault (/data/data/org.nativescript.wva/files/app/tns_modules/nativescript-angular/node_modules/@angular/core/bundles/core.umd.js:2934:29)
JS:     at ReflectiveInjector_._getByKey (/data/data/org.nativescript.wva/files/app/tns_modules/nativescript-angular/node_modules/@angular/core/bundles/core.umd.js:2897:29)
JS:     at ReflectiveInjector_.get (/data/data/org.nativescript.wva/files/app/tns_modules/nativescript-angular/node_modules/@angular/core/bundles/core.umd.js:2706:25)
JS:     at ComponentFactory.create (/data/data/org.nativescript.wva/files/app/tns_modules/nativescript-angular/node_modules/@angular/core/bundles/core.umd.js:5803:31)
JS:     at ViewContainerRef_.createComponent (/data/data/org.nativescript.wva/files/app/tns_modules/nativescript-angular/node_modules/@angular/core/bundles/core.umd.js:4857:49)
JS: Error: Uncaught (in promise): Error: No provider for ViewUtils!

Not sure what will be of most use, so excuse me if there's too much info here:

app.module.ts:

@NgModule({
  imports: [
    NativeScriptModule,
    NativeScriptFormsModule,
    NativeScriptRouterModule,
    NativeScriptRouterModule.forRoot(routes)
  ],
  declarations: [
    BaseLayout,
    Login,
    Children
  ],
  bootstrap: [
    BaseLayout
  ]
 })
export class AppModule {}

base-layout.ts:

@Component({
  moduleId: module.id,
  selector: 'main',
  providers: [
    UserService,
    { provide: APP_CONFIG, useValue: AppConfig }
  ],
  template: '<page-router-outlet></page-router-outlet>'
})
export class BaseLayout {}

login.ts

@Component({
  moduleId: module.id,
  selector: 'login',
  providers: [
    AuthService
  ],
  templateUrl: './login.html',
  styleUrls: [
    './login-common.css'
  ]
})

children.ts

@Component({
  moduleId: module.id,
  selector: 'children',
  templateUrl: './children.html',
  styleUrls: [
    './children-common.css'
  ]
})

Thanks for any help.

Upvotes: 1

Views: 347

Answers (1)

Osei Fortune
Osei Fortune

Reputation: 831

I ran into this problem yesterday you need to remove the node_modules and platforms directories then update the package.json

"@angular/common": "~2.2.1",
"@angular/compiler": "~2.2.1",
"@angular/core": "~2.2.1",
"@angular/forms": "~2.2.1",
"@angular/http": "~2.2.1",
"@angular/platform-browser": "~2.2.1",
"@angular/platform-browser-dynamic": "~2.2.1",
"@angular/router": "~3.2.1",
"nativescript-angular": "^1.1.3"

Upvotes: 1

Related Questions