2016-04-25 48 views
4

我試圖將URL參數放入我的組件中以使用externsre服務進行搜索。我讀過我可以使用angular2路由並使用RouteParams獲取參數,但我不認爲這是我需要的,因爲我的角度應用程序的第一頁是Razor視圖。角2:如何從URL中獲取參數而不使用路由?

我會盡力解釋更好。 我的URL看起來像: http://dev.local/listing/?city=melbourne

我加載我的根組件在Razor視圖的東西,如:

<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

Angular沒有爲此提供特別的支持。您可以使用How can I get query string values in JavaScript?

從我所看到的Location計劃重做,以提供即使不使用路由器獲取查詢參數的支持。

+0

感謝Günter,由於某種原因,我忘記了我只能使用普通的JavaScript。這使得伎倆。關於傳遞給根組件的參數,我無法讓它工作,你知道這是甚至可能嗎?我認爲,因爲該標籤不是Angular模板的一部分,它不是由Angular處理,而只是用適當的根組件替換它? –