2016-04-25 3 views
4

Я пытаюсь получить параметры URL-адреса в моем компоненте для поиска с использованием службы externsre. Я читаю, что могу использовать угловые2 маршруты и получать параметры с помощью RouteParams, но я не думаю, что это то, что мне нужно, потому что первая страница моего углового приложения - это вид Razor.Угловая 2: как получить параметры из URL без использования маршрутизации?

Я попытаюсь объяснить лучше. Мой URL выглядит следующим образом: http://dev.local/listing/?city=melbourne

я загружаю мой корневой компонент в представлении бритвы с чем-то вроде:

<house-list city = "@Request.Params["city"]"></house-list> 

тогда на моей корневой компонент у меня есть:

export class AppComponent implements OnInit { 
    constructor(private _cityService: CityService) { } 

    response: any; 
    @Input() city: any; 

    ngOnInit() { 
     this.getHouses(); 
    } 

    getHouses() { 
     this.__cityService.getHousesByCity(this.city) 
      .subscribe(data => this.response = data); 

    } 
} 

Так Я ожидал, что «город» в моем компоненте получит строку, переданную из бритвы, но она не определена.

Что я делаю неправильно? Есть ли способ получить параметры без использования маршрутизации? Если нет, то каков правильный способ использования бритвы?

ответ

3

Угловой не обеспечивает особую поддержку для этого. Вы можете использовать How can I get query string values in JavaScript?

Из того, что я видел, Location планируется переработать, чтобы обеспечить поддержку для получения параметров запроса даже без использования маршрутизатора.

+0

Спасибо Günter, по какой-то причине я забыл, что могу использовать простой javascript. Это сделало трюк. Что касается параметра, передаваемого корневому компоненту, я не мог заставить его работать, знаете ли вы, возможно ли это? Я предположил, что, поскольку этот тег не является частью шаблона Angular, он не обрабатывается Angular вообще, а просто заменяет его правильным корневым компонентом? –

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