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

相關問題