问题标签 [angular-router]

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 回答
3024 浏览

angular - 不同路线中的 Angular 重用组件

我有以下路线,id 是可选参数,因此用户可以加载信息,或者如果没有提供 id,他们可以添加信息。我希望能够重用该组件,以便不必重新加载页面(在 ngOnInit 中调用 api),但是因为它们是两个单独的路由,所以角度总是会创建一个全新的组件并调用 ngOnInit。

我尝试过使用儿童,但仍然遇到同样的问题

(这是 Angular 4 路由器)

0 投票
1 回答
754 浏览

angular - 更新后重新解析数据的角度路由器

我有一个组件,数据由路由器解析,例如:

现在我们已经向这个组件添加了一个 http post 事务,它改变了我们解析的数据的状态。

有没有一种方便的方法来重新解析路线数据?

添加更多代码...为了保护 IP,更改了一些内容,因此请原谅任何语法错误。

在子组件中,订阅帖子:

然后在“myDataService”中:

0 投票
1 回答
3184 浏览

angular - 子组件无法加载角度使用子路由

我有一个 Bar 组件,然后我在 Bar 组件下创建一个子组件(child-bar)。我也有子路线。但是当我使用子路由时,我的子组件找不到(404)。

app.routes.ts:

bar.component.ts:

bar.component.html:

child-bar.component.ts:

子栏.module.ts:

child-bar.routes.ts:

如果您需要更多文件,请告诉我,我可以附上。谢谢。

0 投票
1 回答
176 浏览

angular - 清除 Angular 路由器查询参数

目前我有一个显示页面,其 URL 如下:

http://localhost:4200/alert?sid=success

在那个页面里面有一个a链接,如下:

<a [routerLink]="['/']">Home</a>

我希望用户不再看到?sid=success他们何时回家。我尝试使用[queryParams]="{}"[queryParamsHandling]=""没有成功。

0 投票
1 回答
85 浏览

angular - Angular2Dart Router.currentInstruction 未设置

我正在 Angular2Dart 中编写一个简单的分页小部件。该组件有一个route方法应该获取当前路由、更新参数和导航。我不确定我这样做是否正确,但在当前的实现中,我使用的是router.currentInstruction. 问题router.currentInstruction是空的。

这是组件(针对此问题进行了简化):

0 投票
1 回答
7308 浏览

angular - 当 queryParams 改变时如何重新运行解析器

我正在研究它好几天,但到目前为止还没有找到任何解决方案。

我有一个解析器服务,它应该返回一个Observable

我在组件中订阅了我的 ActivatedRoute 数据,它运行良好。

但是,正如您在上面的代码中看到的,我的组件有一个queryParam,我的 API 调用依赖于这个queryParam。当我手动更改它时,它不会再次“解决”路线。

我完全理解为什么,我阅读了文档。

有没有人有解决方法?在这种情况下,这甚至可以订阅参数并返回 Observable 吗?

到目前为止,我尝试了这个,但它没有返回 Observable,所以它什么都不做:

谢谢 :) !

----------- 解决方案(感谢马克西姆斯): -----------

添加路由:

然后,无需订阅路由事件或任何东西!魔法 !

0 投票
1 回答
1794 浏览

angular - 在角度 4 中导航到嵌套/多条辅助路线

我正在尝试导航到嵌套的辅助路线,但我不断收到错误消息:

我试图导航到的 URL:

我的路由配置如下所示:

所以有 2 个router-outletsmodalcontainermodalview。后者在ModalsComponent.

应用组件

模态组件

填充正常,modalcontainer但是一旦我尝试填充modalview插座,它就会出错。

我尝试过的导航方式是:

  • [routerLink]="[{outlets: {'modalcontainer': ['modals'], 'modalview': ['register']}}]"
  • [routerLink]="[{outlets: {'modalcontainer': ['modals'], 'modalview': ['modals', 'register']}}]"
  • [routerLink]="['modals', {outlets: {'modalview': ['register']}}]"
  • 直接在地址栏输入http://localhost:4200/(modals:modals//modal:sign-in)
  • this.router.navigate([{outlets: {'modalcontainer': ['modals'], 'modalview': ['register']}}]);
  • this.router.navigateByUrl('/(modals:modals//modal:sign-in)');

是我的配置中的某些东西还是我访问 URL 的方式?或者这是一个错误?

0 投票
0 回答
478 浏览

angular - 将 href 更改为 routerLink 以在 angular4 中动态加载内容

我正在为我的网站创建一个管理界面,我可以在其中撰写文章。在编辑器中,我可以在文章的 HTML 代码中创建以 [href] 结尾的链接。

当我加载一篇文章并将其内容插入页面时,链接仍在使用 href(应该如此),但这意味着即使是内部链接也会重新加载整个页面并且不使用 Angular 路由器。

我如何“编译”动态内容以告诉 Angular 将“href”转换为“routerLink”?

0 投票
1 回答
532 浏览

angular - Angular 2/4:如何在路由数据中引用路径参数?

有没有办法在路由的数据中引用路径参数?

我有一个看起来像这样的通用路线: { path: "Servicing/:type/:id", component: BaseComponent, data: { title: "Servicing" } },

我使用该title属性在页面顶部(和<title>标签)设置标题。因此,与其编写一些特殊的代码,这个标题处理必须知道它应该预先添加type路径参数的某些页面,我想做这样的事情: { path: "Servicing/:type/:id", component: BaseComponent, data: { title: <type> + " Servicing" } },

0 投票
1 回答
677 浏览

angular - 是否可以从 ActivatedRoute 以角度收集所有参数?

我正在创建 Angular 4 应用程序。碰巧我需要从我的 URL 获取不同深度级别的参数,这导致我获取参数的方式不统一。

假设我们有这个 URL:

通常,根据角度文档,我们需要执行以下操作:

请注意,这是考虑到我们在 DrawDetailComponent 内部,这意味着我们在一个组件中,该组件是此层次结构中的最后一个子组件。

另请注意,根据您在此层次结构中的深度,您需要添加|减去 .parent 到您的激活路由,以便在正确的位置,您可以成功获取您正在寻找的参数。

那么,是否可以通过同一个调用获得来自您的 url 的所有参数?

就像是:

我们希望有一种统一的、不依赖于深度的方式来从我们的 URL 中检索所有参数。

实际上我们也尝试过类似的东西:

但我们希望找到一种更好、更通用、可测试的方式。

通常,在像 Django 这样的框架中,开发人员能够一步收集来自 url 所需的所有信息。在 Angular 的情况下,订阅自动处理这些参数的更改是可以的,但恕我直言,它远非舒适 + 可测试。