Я создал пример приложения ionic2, где я получаю список элементов через простой веб-api. Когда я нажимаю на кнопку элемента, я хочу увидеть некоторые детали, но я получаю сообщение о том, что служба не существует в типе моей страницы сведений. Это то, что у меня есть:Свойство 'xxxService' не существует в типе 'xxxDetailsPage'
пункт-list.ts
import {Component} from '@angular/core';
import {Item} from "../../model/item.model";
import { ItemService } from "../../service/item.service";
import { HTTP_PROVIDERS } from "@angular/http";
import {NavController, NavParams} from 'ionic-angular';
import {ItemDetailsPage} from '../item-details/item-details';
@Component({
templateUrl: 'build/pages/item-list/item-list.html',
providers: [ItemService, HTTP_PROVIDERS]
})
export class ItemListPage {
items:Item[] = [];
constructor(private itemService:ItemService, public
navCtrl:NavController, navParams: NavParams)
{
this.getItems();
}
getItems()
{
this.itemService.getItems()
.subscribe(
itemData => this.items = itemData,
err => console.log(err),
() => console.log('Items ophalen compleet.')
)
}
itemTapped(event, itemCode) {
this.navCtrl.push(ItemDetailsPage, {
itemCode: itemCode
});
}
}
Чтобы получить подробную информацию о предмете, я нажимаю на кнопку, которая запускает itemTapped
:
вещь-list.html
<ion-header>
<ion-navbar>
<button menuToggle>
<ion-icon name="menu"></ion-icon>
</button>
<ion-title>Artikelen</ion-title>
</ion-navbar>
</ion-header>
В моей details-page
Я следующий код:
пункт-details.ts
import {Component} from '@angular/core';
import {Item} from "../../model/item.model";
import {NavController, NavParams} from 'ionic-angular';
import {ItemStockPosition} from "../../model/itemStockPosition.model";
import { ItemStockPositionService }
from "../../service/itemStockPosition.service";
import { HTTP_PROVIDERS } from "@angular/http";
@Component({
templateUrl: 'build/pages/item-details/item-details.html',
providers: [ItemStockPositionService, HTTP_PROVIDERS]
})
export class ItemDetailsPage {
//selectedItem: string;
stockPositions: ItemStockPosition[] = [];
constructor(private itemStockPositionService:ItemStockPositionService, public navCtrl: NavController, navParams: NavParams) {
this.getStockPosition(navParams.get('itemCode'));
}
getStockPosition(itemCode){
this.itemStockPositonService.getStock(itemCode)
.subscribe(
stockData => this.stockPositions = stockData,
err => console.log(err),
() => console.log('Items ophalen compleet.')
)
}
}
В item-details.ts
, система выдает ошибку на this.itemStockPositionService
:
Property 'itemStockPositionService' не существует на типе 'ItemDetailsPage'
Мои ItemStockPositionService
выглядит следующим образом:
import { Injectable } from '@angular/core';
import { ItemStockPosition } from '../model/itemStockPosition.model';
import { Http } from '@angular/http';
import 'rxjs/Rx';
const makeUrl = (itemCode) =>
`http://desktopnnc10c9/BasiqInventory/api/item/GetItemStock/${itemCode}`;
@Injectable()
export class ItemStockPositionService{
constructor(private http:Http){
}
// retourneer alle items
getStock(itemCode){
return this.http.get(makeUrl(itemCode))
.map(res => <ItemStockPosition[]> res.json());
}
}