问题标签 [angular2-resolve]

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

angular - 具有 Http 数据服务的 Angular2 路由器通过带有 Observable 捕获 404 的 Resolve

在我的解决方案中,我得到一个 Http Observable 来从特定的id.

id如果不存在,我想捕获错误并重新路由到用户概述。我见过用 Promise 解决这个问题的代码,但不是用 Observable 解决的。我想看到一个带有 Observable 的解决方案!

目前我得到一个"EXCEPTION: Uncaught (in promise): Response with status: 404 Not Found for URL: http://127.0.0.1:3000/users/191"因为用户 191 不存在。

这是我的代码:

解决:

用户服务获取用户(id):

user.routing.ts:

用户详细信息组件:

0 投票
1 回答
4376 浏览

angular - 在Angular2中将Resolve应用于根组件

在Angular2中我们可以使用Resolve如下:

但是我怎样才能最好地应用解析器来运行,例如,我的app.component.ts?也许当网站第一次加载时,无论首先加载哪个页面,我总是需要先获取用户数据(例如)。那么我怎样才能让这个解析器在路由层次结构的下方应用呢?

0 投票
1 回答
82 浏览

angular - Angular2 Routing-Resolve 接口使用与 OpaqueToken

我想在实例化路由/组件之前获取数据。因此,我想使用 Angular2-Routing-Module 中的“解析器”接口。

看看我的代码。它使用字符串作为提供程序名称,但如果我为提供程序使用 OpaqueToken 则会引发错误。

注意“不工作”的评论。

1 我的(儿童)路线(摘录)。

2 我的模块代码(摘录):

3 我的自定义解析器类(摘录):

不可能用创建的 OpaqueToken(“MyToken” - 当然不带引号)替换字符串(“myResolver”)。不知道为什么。我为多个提供者使用了多个 OpaqueToken,但解析器无法使用它。

控制台中的错误消息如下所示,没有更多信息。

错误:必须定义令牌!

有人知道吗?

0 投票
2 回答
1084 浏览

angular - 使用 Resolve 停止路线更改

我有一个 angular2 应用程序,其中列出了许多项目,用户可以单击以获取有关该项目的更多详细信息。

现在,其中一些项目我实际上并没有详细信息 - 当我提出服务请求时我会知道,因此我不想加载带有 404 或其他内容的页面,我只是不想让他路由到那个页面。

我正在使用 Resolve 加载项目,所以理论上它应该非常简单,但我无法弄清楚如何在某些条件下阻止路线发生变化。

我尝试使用Location.back,但这似乎根本不起作用。

0 投票
1 回答
1311 浏览

angular - 按顺序链接可观察对象并从上次调用中返回值

我有一个路由解析器,我需要按顺序进行两个方法调用,它们都返回 observables。我不需要对第一次调用的响应做任何事情,但我想将第二次调用中返回的数据返回到路由组件。有人可以给我一个如何做到这一点的例子吗?我想我应该使用 flatMap() 但我似乎无法让它工作。

所以基本上: firstMethod(): Observable -> secondMethod():Observable <--从中返回值。

0 投票
1 回答
131 浏览

angular - Angular:区分参数和子路由

我有一种情况,如果子路由是参数,而不是路径段,我想要一个解析器。下面是我的代码。

当我点击路径agreement/create时,它会抛出错误,因为create它被认为是参数的值id并且它是无效的。

请帮我解决一下这个。

0 投票
0 回答
1392 浏览

angular - Angular:即使在服务返回后,解析器也会延迟组件加载

我有一些数据必须在页面加载之前加载,我正在使用路由解析器来实现这一点。下面是我的代码。

服务:

解析器:

路由模块:

在路由到的组件中:

在拦截器中:

我使用了一个微调器(使用HttpInterceptor),它在调用后端服务时显示并在服务返回后消失。现在,即使在后端服务返回后,组件也需要很长时间才能加载,所以在微调器消失后,用户仍然在同一页面上一段时间(大约 10 秒),然后才路由到目标页面。

我不明白是什么导致了这种延迟,我哪里错了。请帮我解决一下这个。