2016-08-17 7 views
15

Podczas próby ustawienia typu atrybutu pojawia się błąd Cannot find name 'Subscription'. Z którego pakietu mam go zaimportować?Angular 2: Nie można znaleźć nazwy "Subskrypcja"

import { Component, OnDestroy, OnInit } from '@angular/core'; 
import { ActivatedRoute, Router } from '@angular/router'; 

// I'm missing an import here. Just don't know which package to load from. 

@Component({ 
    moduleId: module.id, 
    selector: 'my-component', 
    templateUrl: 'my.component.html', 
    styleUrls: ['my.component.css'] 
}) 
export class MyComponent implements OnInit, OnDestroy { 

    private sub: any; 

    constructor(private route: ActivatedRoute, 
    private router: Router) {} 

    ngOnInit() { 
    this.sub = this.route.params.subscribe(params => { 
     let id = +params['id']; // (+) converts string 'id' to a number 
    }); 
    } 

    ngOnDestroy() { 
    this.sub.unsubscribe(); 
    } 

} 

Edit: zapewnić bardziej szczegółowy przykład kodu.

+0

można dodawać trochę więcej kodu i szczegółowość – rashfmnb

+0

Obserwuję Angular 2 dokumenty. Często pomijają ważne informacje, które użytkownicy muszą następnie badać i marnować dużo czasu - co jest dość denerwujące tbh. Mogę napisać przykładowy komponent, jeśli to pomoże. Daj mi chwilkę. –

+1

@rashfmnb: Gotowe. Już mam rozwiązanie. Dzięki. –

Odpowiedz

4

Trzeba importować Subskrypcja z "rxjs/Rx".

import { Subscription } from "rxjs/Rx"; 
4

W tym przypadku wystarczy, że linia powinna załadować typ

import {Subscription} from "rxjs/Rx"; 

I możemy używać go zgodnie z oczekiwaniami:

private sub: Subscription;