Angular 2:如何在不使用路由的情况下从URL获取参数?

5
我正在尝试将URL参数传递到我的组件中,以便使用外部服务进行搜索。我读到可以使用angular2路由并使用RouteParams获取参数,但我认为这不是我需要的,因为我的angular应用程序的第一页是一个Razor视图。
我会尝试更好地解释一下。我的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);

    }
}

所以我期望在我的组件中获取 razor 视图传递的字符串 'city',但是它是未定义的。

我做错了什么?有没有一种方法可以不使用路由来获取参数?如果没有,使用 razor 的正确方式是什么?

1个回答

4

1
谢谢Günter,由于某种原因我忘记了可以使用纯JavaScript。这解决了问题。关于传递给根组件的参数,我无法使其工作,您知道是否可能吗?我认为因为该标签不是Angular模板的一部分,所以它根本没有被Angular处理,只需将其替换为正确的根组件即可。 - Mario Lopez

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接