【问题标题】:NativeScript/Angular2 - No provider for ViewUtilsNativeScript/Angular2 - 没有 ViewUtils 的提供者
【发布时间】:2016-12-06 10:33:45
【问题描述】:

尝试制作一个非常简单(类似教程的)NativeScript/Angular2 应用程序。

我刚刚开始添加一个路由器和一个“基础”组件,它有一个 <page-router-outlet> 用于更改视图/导航。

添加此设置后,主要从此处复制:https://github.com/NativeScript/sample-Groceries 我现在收到一个错误:

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!

不确定什么最有用,如果这里有太多信息,请见谅:

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'
  ]
})

感谢您的帮助。

【问题讨论】:

    标签: angular angular2-routing nativescript angular2-nativescript


    【解决方案1】:

    我昨天遇到了这个问题,你需要删除 node_modulesplatforms 目录然后更新 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"
    

    【讨论】:

    • 抱歉花了一段时间才接受,但虽然没有立即解决我的问题,但这绝对是 NPM 包不匹配/升级的情况。
    • 有效的最终解决方案是启动一个新的 TNS 项目并从旧项目中一个一个地复制文件,并且它从未停止工作....我猜太酷了...
    猜你喜欢
    • 1970-01-01
    • 2017-01-05
    • 2016-04-06
    • 2017-01-31
    • 2016-12-18
    • 2016-07-06
    • 1970-01-01
    • 2017-02-28
    • 2016-12-20
    相关资源
    最近更新 更多