首页 文章

nativescript和angular2 - 没有提供程序错误

提问于
浏览
0

我在使用angular2和typescript加载nativescript app时遇到了问题 . 我想解决很久了 . 我拥有的是:

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 . 有人可以帮助我发现我的代码中的小问题吗?

2 回答

  • 0

    ItemListApi 添加到 app.module.ts 的提供者列表中:

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

    在回答Nick所说的内容时,他无法将其作为提供者添加到他所使用的ts文件中,因为他正在使用 @Injectable 而不是 @Component

  • 1

    如评论中所述;您需要更新module.ts文件中的导入 .

    加:

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

    与您的module.ts中的其他导入,然后:

    SDKBrowserModule.forRoot()
    

    在module.ts中的导入数组中

相关问题