问题标签 [routerlink]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
5288 浏览

javascript - 在 Angular 应用程序中通过 RouterLink 处理动态 URL 参数

在我的 Angular 2 应用程序中,我有一个选项卡区域,用户可以在其中从一组独立但上下文相关的组件中进行选择。当他们点击这些链接之一时,相关组件会根据 routerLink 中定义的内容加载,如下所示:

这运作良好。但是,从那时起,我们构建了应用程序以将各种用户选择的过滤器选择保存为 URL 中的参数。这样,当他们重新加载组件时,他们最近的选择仍然可见并应用于数据。因此,在用户做出一些过滤器选择后,URL 可能如下所示:

其组件代码如下所示:

这适用于主要导航方法,这些方法通过路由文件完成,每个方法如下所示:

但是,对于我提到的这个选项卡区域,它根据硬编码的 routerLink 参数加载组件。所以我现在意识到,当用户以这种方式导航回组件时,而不是通过我们提供的其他方式之一,它实际上会覆盖 URL 参数——因为它实际上是在加载“page1”——因为这个<a class="page-content-header-item" routerLink="/page1" routerLinkActive="selected">Page 1</a>

...因此,之前添加的 URL 参数将被清除。

所以,我的问题是,有没有办法可以编辑这段代码:

...所以它允许一些动态变量?还是我必须找到一种新方法来处理此选项卡区域中的导航?

0 投票
0 回答
276 浏览

javascript - 在 Angular 应用程序中使用 route.snapshot 和 routerLink 来获取 url

我正在尝试处理我的 Angular 应用程序中的一种情况,其中我有一些通过 routerLink 加载的内部链接(一个部分中的链接 - 使用与应用程序的其余部分不同的导航机制)。这本身就足够了,看起来像这样:

但是,自从我第一次设置这些链接以来,我们现在也有一些过滤器选择,我们也保存在 url 中。所以我也想弄清楚如何在这里通过这些。我认为Angularroute.snapshot可以在这里工作。所以我正在尝试这个:

getParams()看起来像这样:

这让我更接近......但是,我仍然最终将主 url 链接加倍(这并不奇怪,因为它正在拍摄整个 url 链接的快照),并且假设我启用了“西班牙语”语言过滤器,地址栏中的 url 最终看起来像这样:

http://somesite.com/section-start;url=section-start%3Bpn_lang_e%3Dtrue%3Bpn_lang_s%3DSpanish

虽然使用我在站点其他区域的常用路由机制,但相同的参数会产生这样的 url(这就是它应该看起来的样子):

http://somesite.com/section-start;pn_lang_e=true;pn_lang_s=西班牙语

由于我通过传入接近正确的 url getParams(),我假设有一种方法可以清理/解析它以不同的方式结束,从而得到正确的 url 字符串。关于我如何做到这一点的任何想法 - 或者有没有比这更好的方法?

0 投票
0 回答
124 浏览

angular2-routing - routerLink 否定条件

我试图使用Angular 2向routerlink添加“不”条件。我的用例是我希望页面每次不在主页中时都有一个默认类,我不想为每个页面添加类。它用于显示侧边栏,仅隐藏在主页上。所以:

这就是我想否定的。像这样:

谢谢!

0 投票
1 回答
2070 浏览

javascript - 在 Angular 应用程序中通过 RouterLink 绑定 URL 参数

我试图了解加载 routerLink 的基本实现,同时还拉入保存的 url 参数会是什么样子。通常,我在应用程序中处理路由的方式是通过订阅 observable,如下所示:

这允许我在 POST 请求中将一些过滤器参数作为正文的一部分传递给 api 调用。这将返回在返回数据之前传入用户过滤器选择的结果。

这一切都按预期工作。当用户“返回”到之前加载的组件时,他们之前的过滤器选择将被传递到 api 调用中,因此“页面”看起来就像他们上次在该页面/组件上时所做的那样。

但是,我的应用程序中也有几个部分,我通过 routerLink 加载组件。他们最初看起来像这样:

问题是,既然我在 url 中有过滤器参数,仅此一项就行不通了,因为每次我单击这些特定链接时,它都会清除 url 并仅使用页面标识符“customer-”重新加载它历史”——因为这就是我目前告诉它要做的事情。

例如,如果用户使用过滤器根据城市过滤结果,则 url 将如下所示:

所以问题是,如果他们点击离开,然后通过 routerLink 链接返回到该页面/组件,而不是获取该页面的过滤数据,它将改为加载:

所以我的问题是关于如何将这些 url 参数作为 routerLink 的一部分传递。我认为它看起来像这样,带有用于绑定的方括号:

我不清楚的是如何获取那些特定的 url 参数(只是过滤器参数,而不是组件/页面名称)并通过像这样的绑定传递它们。

我知道 Angular 提供了可用的activatedRoute.snapshot,我可以像这样得到它,以传递到getParams()

但这将返回完整的 url,而不仅仅是我需要的过滤参数部分。那么我将如何获得我需要的部分网址,并将其传递到此处以附加到网址中的“客户历史记录”?在基本实现中会是什么样子?

0 投票
0 回答
58 浏览

angular - 通过 routerlLink 发送的 angular2 数据始终未定义

早上好,我通过 routerLink 发送数据时遇到问题;在目标组件中,它们始终未定义。

其实模板是:

从给定候选人的 orderNumber 和 dateOfBirth 我检查它是否退出然后我显示有关候选人的更多详细信息。问题是,即使找到候选人(我通过 console.log(candidate) 看到它),组件 reportregistration 中的参数 Candidate.name 、candidate.surname、candidate.gender都是[routerLink]="['/reportregistration', candidate.name, candidate.surname, candidate.gender ]" 未定义的。

相关的 Typescript 文件是:

在服务提供商中,我有:

我需要一些帮助...

好的。该路线位于 app.module.ts 中,并且是:

0 投票
1 回答
1693 浏览

angular - Angular中带有routerLink链接的动态查询参数

我正在尝试在循环中将参数传递给我的 routerLink 。下面是对象数组的样子: 在此处输入图像描述

这是带有 routerLink 链接的循环:

期望的输出:<a href="page?position=hello"></a>

0 投票
1 回答
1312 浏览

angular - 使用 Hashtag Angular 4 在当前页面中路由

我会在当前页面中添加 Hashtag 链接。

我在这篇文章中找到了这个答案:Angular2 Routing with Hashtag to page anchor

我尝试使用 Gunter Answer。

我的应用结构是这样的:

组件应用程序.html

这是我的 MenuAcceuilCompoenent.html

MenuAcceuilComponent.ts

模块应用程序.ts

我尝试了 2 个组件(演示和形成)。

当我单击链接时,没有任何反应。

0 投票
0 回答
427 浏览

angular - Angular 4 - 无法使用多个插座打开弹出窗口

我正在开发一个带有一些链式出口路由的 Angular 4 应用程序,但在使用路由出现弹出窗口时遇到了一些麻烦。基本上弹出路由的路径是“pages/admin/user-management/new”,路由是这样配置的:

第一个组件定义了这个模板和路由:

pages 模块定义了这个:

最后,管理模块定义了这一点:

但是我无法弄清楚如何以显示弹出窗口的方式配置 routerLink,尝试了这个和很多变体:

但我总是收到:

ERROR 错误:未捕获(在承诺中):错误:无法匹配任何路由。URL 段:'user-management%2Fnew'

0 投票
2 回答
1767 浏览

angular - routerLink 在 ngFor 中不起作用

三天以来,我一直面临着这个甜蜜的问题。让我们从正在制作的单个 HTML 代码开始

问题是我点击它多少次,它什么也没有。我尝试使用链接到应用程序的单独 JSON 来自动化侧栏中的列表。我使用AngularX大约一年,我很高兴知道 routerLink 指令不适用于存在的每个组件。但是当我将它用作单个组件时(没有*ngFor

这是可以帮助您理解的图像

0 投票
1 回答
375 浏览

angular2-routing - 如何使用 routerLink 在 Angular 2 中突出显示两个不同 URL 的相同页码

我有如下分页。我想突出显示以下两个链接的第 2 页。

如何使用 angular 2 来实现这一点。