问题标签 [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.
angular - 不同路线中的 Angular 重用组件
我有以下路线,id 是可选参数,因此用户可以加载信息,或者如果没有提供 id,他们可以添加信息。我希望能够重用该组件,以便不必重新加载页面(在 ngOnInit 中调用 api),但是因为它们是两个单独的路由,所以角度总是会创建一个全新的组件并调用 ngOnInit。
我尝试过使用儿童,但仍然遇到同样的问题
(这是 Angular 4 路由器)
angular - 更新后重新解析数据的角度路由器
我有一个组件,数据由路由器解析,例如:
现在我们已经向这个组件添加了一个 http post 事务,它改变了我们解析的数据的状态。
有没有一种方便的方法来重新解析路线数据?
添加更多代码...为了保护 IP,更改了一些内容,因此请原谅任何语法错误。
在子组件中,订阅帖子:
然后在“myDataService”中:
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:
如果您需要更多文件,请告诉我,我可以附上。谢谢。
angular - 清除 Angular 路由器查询参数
目前我有一个显示页面,其 URL 如下:
http://localhost:4200/alert?sid=success
在那个页面里面有一个a
链接,如下:
<a [routerLink]="['/']">Home</a>
我希望用户不再看到?sid=success
他们何时回家。我尝试使用[queryParams]="{}"
但[queryParamsHandling]=""
没有成功。
angular - Angular2Dart Router.currentInstruction 未设置
我正在 Angular2Dart 中编写一个简单的分页小部件。该组件有一个route
方法应该获取当前路由、更新参数和导航。我不确定我这样做是否正确,但在当前的实现中,我使用的是router.currentInstruction
. 问题router.currentInstruction
是空的。
这是组件(针对此问题进行了简化):
angular - 当 queryParams 改变时如何重新运行解析器
我正在研究它好几天,但到目前为止还没有找到任何解决方案。
我有一个解析器服务,它应该返回一个Observable:
我在组件中订阅了我的 ActivatedRoute 数据,它运行良好。
但是,正如您在上面的代码中看到的,我的组件有一个queryParam,我的 API 调用依赖于这个queryParam。当我手动更改它时,它不会再次“解决”路线。
我完全理解为什么,我阅读了文档。
有没有人有解决方法?在这种情况下,这甚至可以订阅参数并返回 Observable 吗?
到目前为止,我尝试了这个,但它没有返回 Observable,所以它什么都不做:
谢谢 :) !
----------- 解决方案(感谢马克西姆斯): -----------
添加路由:
然后,无需订阅路由事件或任何东西!魔法 !
angular - 在角度 4 中导航到嵌套/多条辅助路线
我正在尝试导航到嵌套的辅助路线,但我不断收到错误消息:
我试图导航到的 URL:
我的路由配置如下所示:
所以有 2 个router-outlets
是modalcontainer
和modalview
。后者在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 的方式?或者这是一个错误?
angular - 将 href 更改为 routerLink 以在 angular4 中动态加载内容
我正在为我的网站创建一个管理界面,我可以在其中撰写文章。在编辑器中,我可以在文章的 HTML 代码中创建以 [href] 结尾的链接。
当我加载一篇文章并将其内容插入页面时,链接仍在使用 href(应该如此),但这意味着即使是内部链接也会重新加载整个页面并且不使用 Angular 路由器。
我如何“编译”动态内容以告诉 Angular 将“href”转换为“routerLink”?
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" } },
angular - 是否可以从 ActivatedRoute 以角度收集所有参数?
我正在创建 Angular 4 应用程序。碰巧我需要从我的 URL 获取不同深度级别的参数,这导致我获取参数的方式不统一。
假设我们有这个 URL:
通常,根据角度文档,我们需要执行以下操作:
请注意,这是考虑到我们在 DrawDetailComponent 内部,这意味着我们在一个组件中,该组件是此层次结构中的最后一个子组件。
另请注意,根据您在此层次结构中的深度,您需要添加|减去 .parent 到您的激活路由,以便在正确的位置,您可以成功获取您正在寻找的参数。
那么,是否可以通过同一个调用获得来自您的 url 的所有参数?
就像是:
我们希望有一种统一的、不依赖于深度的方式来从我们的 URL 中检索所有参数。
实际上我们也尝试过类似的东西:
但我们希望找到一种更好、更通用、可测试的方式。
通常,在像 Django 这样的框架中,开发人员能够一步收集来自 url 所需的所有信息。在 Angular 的情况下,订阅自动处理这些参数的更改是可以的,但恕我直言,它远非舒适 + 可测试。