Jestem już godzinami próbuje dowiedzieć się, jak prawidłowo wstrzyknąć zależność URLSearchParams
w komponent.Jak wykorzystać URLSearchParams w Angular 2
W moim boot.ts
upewniam się, że obejmuje HTTP_PROVIDERS
- szczerze mówiąc, nie jestem nawet pewien, czy jest to wymagane dla URLSearchParams
.
Zapewniłem również, że dołączam skrypt pakujący http na mojej stronie.
boot.ts
bootstrap(AppComponent, [
HTTP_PROVIDERS,
ROUTER_PROVIDERS,
provide(LocationStrategy, {useClass: HashLocationStrategy}),
PanelsService,
FiltersService
])
Jest FiltersService
gdzie jestem usiłujące wstrzyknąć URLSearchParams
.
filter.service.ts
import {Component, Injectable} from 'angular2/core';
import {URLSearchParams} from 'angular2/http';
@Injectable()
export class FiltersService {
constructor(private _searchParams:URLSearchParams) { }
setFilter(name, value) {
this._searchParams.set(name, value);
}
getFilter(name) {
this._searchParams.get(name);
}
}
Wstrzykiwanie URLSearchParams
w konstruktora powoduje błąd:
Czytałem this article, kilka razy w rzeczywistości i nie wiem, gdzie idę źle.
Dla tego, co jest warte, napotykam ten sam problem przy próbie wstrzyknięcia RouteParams
. Brakuje mi czegoś fundamentalnego.
EDIT: Od pewnego większej jasności, to co moja StoriesComponent
wygląda następująco:
import {Component, OnInit} from 'angular2/core';
import {PanelsService} from '../panels/panels.service';
import {RouteParams} from 'angular2/router';
import {FiltersService} from '../common/filters.service';
@Component({
selector: 'stories',
templateUrl: 'app/components/stories/stories.component.html'
})
export class StoriesComponent implements OnInit {
constructor(public panelsService:PanelsService,
public filtersService: FiltersService,
private _routeParams:RouteParams) {
this.panelsService.setSelectedPanel(this._routeParams.params['panelId']);
}
ngOnInit() {
console.log('Stories');
}
addPanel() {
var newPanel = {
id: 999,
name: 'my new panel name',
time: 744
// time: 168
}
this.panelsService.addPanel(newPanel);
}
}
EDIT 2: Oto plunk który demonstruje mój problem - patrz peopleService.ts
co to jest storiesComponent w swoim projekcie? myślę, że problem jest w tej klasie nie w filter.service sprawdź jeszcze raz storiesComponent. –
@PardeepJain Mam zaktualizowane moje pytanie z zawartością mojego 'StoriesComponent' – garethdn