2016-08-09 4 views
0

Я создал пример приложения 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()); 
    } 

} 

ответ

3

у вас есть опечатка в itemStockPosit [i] onService. i отсутствует внутри функции getStockPosition.

Смежные вопросы