2016-12-14 11 views
0

angular2とtypescriptを使用してnativescriptアプリケーションを読み込む際に問題が発生しました。私は長い間解決しようとしています。どのような私が持っていることは次のとおりです。nativescriptとangular2 - プロバイダエラーなし

list.service.ts

import { ItemListApi } from '../sdk/services/custom/ItemList'; 
import { ItemList } from '../sdk/models/ItemList'; 

@Injectable() 
export class ListService { 
items: Observable<Array<Item>>; 
public grocery: Grocery = new Grocery('', ''); 
private listModel: ItemList = new ItemList(); 

constructor(private itemListApi: ItemListApi, 
    private authModelApi: AuthModelApi, 
    private loginCredentials: LoginCredentials) { 

} 

addItems(list: ItemList) { 
    let uid; 
     uid = this.loginCredentials.getUserId(); 
     return this.itemListApi.create({ 
     "name": list.name, 
     "userid": uid 
    }); 
}; 
} 

module.ts

@NgModule({ 
imports: [ 
CommonModule, 
FormsModule, 
RouterModule 
], 
declarations: [ 
LoginComponent, 
ListComponent 
], 
providers: [ 
LoginService, 
ListService, 
LoginCredentials, 
HeroActions, 
HeroService 
], 
exports: [ 
LoginComponent, 
ListComponent 
] 
}) 

私は "ItemListApi用ませプロバイダー" と言っていないエラーメッセージが出ていすべての時間を... 実際にItemListApiは私のループバックのnativescript sdkからです。 誰かが私のコードでその小さな問題を見つけられるのを助けることができますか?

+0

それが使用されているコンポーネントのrpvoiderを参照してください。たとえばhttps://github.com/NativeScript/nativescript-sdk-examples-ng/blob/master/app/http/http-get/http-get.component .ts –

答えて

1

あなたapp.module.tsのプロバイダリストにItemListApiを追加します。返信で

providers: [ 
LoginService, 
ListService, 
LoginCredentials, 
HeroActions, 
HeroService, 
ItemListApi 
], 

をニックが言ったことに、彼は@Injectableない@Component

を使用しているとして、彼は彼が中のTSファイル内のプロバイダとして追加カント
+0

実際にこのモジュール。 tsは共有ファイルです。これは、Web、デスクトップ、およびnativescriptアプリケーションで一般的です。ですから、このファイルで作成したどのような変更も、app.i内のすべてに反映されます。ウェブ用に2つ、nativecsriptに1つです。このnativescript sdk ItemListApiはこのエラーを受け取ります。だから何をすべきか? – Khushi

+0

'ItemListApi'を追加すると問題が解決するはずです – mast3rd3mon

0

コメントで述べたとおり。 module.tsファイルのインポートを更新する必要があります。

追加:あなたのmodule.ts内の他の輸入品との

import { SDKBrowserModule } from './shared/sdk/index'; 

、その後も:module.tsであなたの輸入配列の

SDKBrowserModule.forRoot() 

あなたにサービスを提供しなければならない

関連する問題