问题标签 [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 投票
2 回答
20265 浏览

angular - Angular 2获取父激活路线

我有一条这样的路线儿童路线:

在浏览器中我想获得激活的父路由

如何/dashboard使用 Angular 2 而不是在 JavaScript 中获得但可能,但我也可以接受 JavaScript 代码,但主要是 Angular 2。

0 投票
6 回答
157858 浏览

angular - 在 Angular 中,什么是“路径匹配:完整”,它有什么作用?

在这里它使用完整的路径匹配,当我删除这个路径匹配时,它甚至不会加载应用程序或运行项目

0 投票
10 回答
193674 浏览

angular - Angular:如何在不更改路线的情况下更新 queryParams

我正在尝试从组件中更新(添加、删除)queryParams。在 angularJS 中,它曾经是可能的,这要归功于:

我有一个应用程序,其中包含用户可以过滤、订购等的列表,我想在 url 的 queryParams 中设置所有激活的过滤器,以便他可以复制/粘贴 url 或与其他人共享。

但是,我不希望每次选择过滤器时都重新加载我的页面。

用新路由器可以吗?

0 投票
1 回答
207 浏览

angular - Angular 无法导航到子路径

我无法直接前往子路线。我的网址是http://localhost:4201/home/profile但路由器跟踪以 url: '/home' 而不是 url: '/home/profile' 开头

路由器事件:NavigationStart platform-b​​rowser.es5.js:1028 NavigationStart(id: 1, url: '/home') platform-b​​rowser.es5.js:1028 NavigationStart {id: 1, url: "/home"}

这是由于将子路由加载为模块吗?

0 投票
1 回答
942 浏览

angular - Angular:命名路由器出口上的相对导航

我有以下Angular Route配置

ManageComponent是一个沙盒组件,将在其中渲染PreviewComponent和。EditComponent

用户用例将用户重定向到http://localhost:4200/#/(manage:manage/bar/12762)与预览组件匹配的用户。这里一切正常。

PreviewComponent和当用户点击一个按钮时,我想做一个相对导航到EditComponent拥有,当导航完成时,http://localhost:4200/#/(manage:manage/bar/12762/add/foo)

我试过了

但每次,用户都会被重定向到http://localhost:4200/#/add/foo.

我怎样才能做这个导航?

0 投票
1 回答
3225 浏览

angular - 为 Angular2 添加路由到 MdDialog

我需要向 MdDialog 组件添加路由,但我不确定解决此问题的最佳方法是什么。

目前,在 foo 页面 ( www.app.com/foo/1) 上,用户可以单击一个按钮,它将打开一个 MdDialog 组件 bar。

我想要做的是,在打开 MdDialog 时,它将附加/bar/:id到组件。因此,例如,它将类似于www.app.com/foo/1/bar/1. 目标是让用户拥有一个可共享的链接,该链接可以指向 foo,然后打开 MdDialog。

到目前为止,这就是我的应用程序的结构。

目前在我的foo-routing.module.ts,我有这个:

但是,这不起作用。所有这一切都是打开模块,重新路由到/,并且不允许我单击其他链接。

有人有什么建议或想法吗?谢谢!

0 投票
1 回答
3271 浏览

javascript - Angular 4,路由器 4.0.0:routerLink 或 router.navigate 以编程方式不会重定向到子路由

我正在尝试创建一个链接,以便在登录(/登录路由)后重定向到 /dashboard/overview 子路由,但没有任何运气。我单击链接,我没有收到任何错误或任何响应。我可以在浏览器的底栏上看到正确的路径,如果我手动输入 url,我会访问正确的页面,路径是/dashboard/overview。我不确定它是否有任何关系的一件事是路由是 AuthGuarded。

我在登录后以编程方式尝试将用户重定向到仪表板,我什至可以在 chrome 控制台上看到“重定向到仪表板”消息

并且还创建了一个routerLink,但它也不起作用,没有任何反应,甚至控制台中没有错误:

这是我的路由文件:

我什至在仪表板组件的 ngOnInit 上放置了一个 console.log,以查看该组件是否已创建,或者在概述组件中,但我没有任何运气,在以编程方式导航时,我在控制台上看不到任何消息路由器链接。如上所述,当我手动访问时确实收到了消息。有任何想法吗?非常感谢

编辑:显然是我应用到仪表板路由的 authguard 有问题,这是 AuthGuard 文件,可能是它没有发现一些错误,或者返回的值不是应该的值??:

authService 上的 isAuthenticated() 方法只返回一个带有用户身份验证状态的 observable。我想知道是否存在竞争条件或其他什么......因为最初通过发出 http 异步请求来设置 observable......如果我将 console.log 放入 isAuthenticated 方法,它会记录在控制台上。如果我将console.log放在authguard函数的地图中,如果它没有被记录,那么由于某种原因代码没有被执行......

auth.service.ts

编辑 2:我在 authService 上使用了 Behavior Subject 而不是 Subject 因为它让我得到最后一个发出的值,与您必须订阅的常规主题相比,这是一个非常酷的功能,有时这还不够。下面我的答案的更多细节。

0 投票
2 回答
674 浏览

angular - Angular Router 动画计时错误

我最近将我的 Angular 应用程序更新到 4.0,以便利用路线之间的动画。

下面是我的动画功能:

出于某种原因,当我将一个转换的时间更改为与另一个相同(即将“0.7s”更改为“0.8s”)时,我收到以下错误:

这两个动画不应重叠,stateChangeExpr因为每个过渡的动画都不同。

我错过了什么?

0 投票
3 回答
1630 浏览

angular - 当路由改变时,app.component.ts 中的 NativeScript-Angular -> ActionBar 不一致

这是 app.component.html

当路线更改时,操作栏会更改为其他内容。我不能在 app.component.ts 中使用 ActionBar 吗?

0 投票
3 回答
1829 浏览

angular - 为什么这个http请求在角度4中失败,但通过提琴手?

我有一个通过提琴手的http post请求:使用

与身体

这执行得很好,并且电子邮件已在 webapi 2 的身份数据库中注册。

但是,我的 authorize.service.ts 中有以下代码:

控制台显示: SCRIPT7002: XMLHttpRequest: Network Error 0x80070005, Access is denied.

主页 HTML1300:发生导航。主页 模板解析警告:该元素已弃用。改用 ("-child ui-shadow':!root}" class="ui-menu-list" (click)="listClick($event)"> [WARNING ->] http://localhost:58183/api /Account/Register authorization.service.ts (47,9) SCRIPT7002:XMLHttpRequest:网络错误 0x80070005,访问被拒绝。

home ERROR SyntaxError: Invalid character core.es5.js (1020,1) "ERROR" { [functions]: , proto : { }, description: "Invalid character", message: "Invalid character", name: "SyntaxError",编号:-2146827274,堆栈:“SyntaxError:SafeSubscriber.prototype.__tryOrUnsub ( http://localhost:4200/vendor ) 的匿名函数 ( http://localhost:4200/main.bundle.js:788:13 ) 中的无效字符.bundle.js:37370:13 ) 在 SafeSubscriber.prototype.error ( http://localhost:4200/vendor.bundle.js:37329:21 ) 在 Subscriber.prototype._error ( http://localhost:4200/vendor .bundle.js:37260:9 ) 在 Subscriber.prototype.error (http://localhost:4200/vendor.bundle.js:37234:13 ) 在 Subscriber.prototype._error ( http://localhost:4200/vendor.bundle.js:37260:9 ) 在 Subscriber.prototype.error ( http://localhost:4200/vendor.bundle.js:37234:13 ) onError ( http://localhost:4200/vendor.bundle.js:108672:17 ) 在 ZoneDelegate.prototype.invokeTask ( http:// localhost:4200/polyfills.bundle.js:2836:13 ) 在 onInvokeTask ( http://localhost:4200/vendor.bundle.js:90272:21 )" }

HTTP405: BAD METHOD - 不支持使用的 HTTP 动词。(XHR) 选项 - http://localhost:58183/api/Account/Register

我想不通。提前感谢您的帮助。