2016-04-25 51 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处理,而只是用适当的根组件替换它? –