Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 从外部URL打开sidenav_Angular_Routing - Fatal编程技术网

Angular 从外部URL打开sidenav

Angular 从外部URL打开sidenav,angular,routing,Angular,Routing,我有一个疑问,想知道是否有可能做到以及如何做到以下几点:我有一个显示地图的angular 6应用程序。在此地图中,我从geoJSON渲染标记。如果我单击一个标记,应用程序将打开一个带有标记信息的sidenav。好吧,我有个问题: 地图中的URL为http://example.com//pages/map. 每个标记都有一个唯一的ID,类似于此11_39_6534。我想创建一个URL,用于打开sidenav,其中包含有关标记的特定信息 http://example.com/#/pages/map/

我有一个疑问,想知道是否有可能做到以及如何做到以下几点:我有一个显示地图的angular 6应用程序。在此地图中,我从geoJSON渲染标记。如果我单击一个标记,应用程序将打开一个带有标记信息的sidenav。好吧,我有个问题:

地图中的URL为http://example.com//pages/map. 每个标记都有一个唯一的ID,类似于此11_39_6534。我想创建一个URL,用于打开sidenav,其中包含有关标记的特定信息

http://example.com/#/pages/map/11_39_6534
类似于谷歌地图


我怎么做?提前感谢。

定义如下路线:

pages/map/:markerId'

然后在与新路线相关的组件中,在onInit中添加以下内容:

ngOnInit(){
   const markerId = this.activatedroute.snapshot.params['markerId'];
   //... function that trigger the toggle
}

如果您可以通过单击标记来更具体地说明您为切换sidenav而实现的逻辑,我可以以更好的方式编辑我的答案。但即使用这种简单的方式也应该很清楚

解释如何打开sidenav有点复杂,因为我会根据动作注入不同的组件。我遵循了本教程,我知道,我可以为您制作一个Plunker示例,但只是为了演示如何使用简单的逻辑(如console.log)捕获您在url中传递的id,以显示catchFine!非常感谢。如何检查路由是否处于活动状态?如果activatedRoute未找到传递到url中的id,则会得到const markerId undefined。所以我建议你做一个这样的检查:如果!!markerId{//executeLogic}嗯,这个逻辑不起作用。现在我可以从URL中获取id,但是如果我把if!!markerId{//executeLogic}该逻辑永远不会执行。如果我只放一个如果!markerId{//executeLogic},始终执行逻辑。我需要使用url/pages/map,因为我有很多函数运行到这个程序中