属性のタイプを設定しようとすると、エラーCannot find name 'Subscription'
。どのパッケージからインポートしますか?
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();
}
}
編集:より詳細なコード例を提供します。
次のようにインポートする必要があります。
import { Subscription } from 'rxjs/Subscription';
[〜#〜] edit [〜#〜]Angular 6
import { Subscription } from 'rxjs';
こちらをご覧ください: https://angular.io/docs/ts/latest/guide/router.html そして、そのドキュメントにはいくつかのプランカーがリンクされています。
in angular 6 and angular 7
import { Subscription } from 'rxjs';
「rxjs/Rx」からSubscriptionをインポートする必要があります。
import { Subscription } from "rxjs/Rx";
この場合、その行だけがタイプをロードする必要があります
import {Subscription} from "rxjs/Rx";
そして、期待どおりに使用できます。
private sub: Subscription;