1

试图制作一个非常简单的(教程)NativeScript/Angular2应用程序。NativeScript/Angular2 - 没有ViewUtils的提供者

我刚刚开始添加路由器和一个“基本”组件,它具有用于更改视图/导航的<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 {} 

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

感谢您的帮助。

回答

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" 
+1

对不起花了一段时间来接受,但同时不能马上解决我的问题,这是绝对是一个不匹配/升级的NPM软件包的情况。 – Stephen2

+1

最终解决方案的工作是启动一个新的TNS项目,并从旧项目中逐个拷贝文件,并且它从未停止工作....很酷,我猜... – Stephen2

相关问题