2016-12-14 105 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來自我的loopback nativescript sdk。 有人可以幫我發現我的代碼的小問題?

+0

你應該提供的服務爲一個rpvoider在它使用的組件。例如https://github.com/NativeScript/nativescript-sdk-examples-ng/blob/master/app/http/http-get/http-get.component .ts –

回答

1

添加ItemListApi到您app.module.ts的供應商名單:

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

在回答什麼尼克說,他不能將其添加爲TS文件,他是在一個供應商,因爲他是用@Injectable@Component

+0

實際上是這個模塊。 ts是共享文件,這是Web,桌面和nativescript應用程序常見的文件。所以無論我在這個文件中做出的chages都會在app.i中反映出來,我有2個sdk一個用於web,一個用於nativecsript。這個nativescript sdk ItemListApi得到這個錯誤。所以我該怎麼做? – Khushi

+0

好的添加'ItemListApi'應該可以解決你的問題,所以我不確定 – mast3rd3mon

0

正如評論中所述;您需要在module.ts文件中更新導入。

地址:

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

與您module.ts其他進口,然後又:

SDKBrowserModule.forRoot() 
在module.ts您的進口陣列

相關問題