问题标签 [angular-resolver]

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

angular - 使用路由解析器将静态数据传递给 Angular 8 中的路由组件是一种好习惯吗?

我们有一个User组件接收用户对象作为@input

这里对应的模板:

在路由组件UsersList(primary <router-outlet>)中,我们需要在屏幕上显示用户列表:

然后,当我们单击从列表中选择一个用户时,我们使用相同的User组件显示选定的用户数据,但这次是一个路由组件(名为<router-outlet name="selected">):

应用模型

这里我们的路线:

所以,这里的selectUser()功能:

在我们的User组件内部,我们需要实现OnInit接口:

所有这一切都很好!我想知道的是,这样做是否是一个好习惯?

仅供参考,我也尝试使用路由解析器,但我无法访问该NavigationExtras state对象...在解析器中获取用户数据的唯一方法是将其传递为queryParams. 当我们有 3 个属性时会很好,但是,如果我们有 10 多个属性,URL 就会变得丑陋和混乱。而且,解析器的角色似乎是解析异步数据而不是传递静态数据。

感谢您提供见解!

0 投票
1 回答
446 浏览

angular - 如何在 Angular 的解析器管道中进行过滤?

在我的 routes.ts 中,我有{ path: 'members', component: MemberListComponent, resolve: { users: MemberListResolver} },.

我的组件中有以下代码:

我正在订阅方法中进行过滤,是否也可以在管道中执行此操作,如果可以,我该怎么做?

0 投票
1 回答
77 浏览

angular - 从 Angular 中的解析器返回 Observable 的目的

为什么要从 Angular 的解析器返回一个 Observable?这与简单地订阅组件本身的服务/存储中的方法有什么不同?我认为解析器的目的是确保数据在组件加载之前存在。

0 投票
2 回答
256 浏览

angular - 解决promise后如何加载html页面?

我正在尝试使用 Angular 和 Typescript 从 ASP .NET Core API 向 html 组件显示一些数据,响应返回正确的值并且承诺运行良好。

问题是在解决承诺之前加载了 html 页面,因此显示的值是未定义的。

承诺解决后,我可以使用什么来加载页面以及如何加载?

文件共享.component.ts

文件共享.component.html

共享模型.model.ts

0 投票
3 回答
1226 浏览

javascript - 如果在同一组件上,Angular router.navigate 不会路由到解析器

我从页面顶部的导航栏组件执行搜索。从导航栏输入搜索条件时,我可以路由到我的“成员”组件页面,但是一旦我在“成员”组件上并更改查询参数并尝试再次运行 router.navigate(),我可以“ t 让 Angular 击中我的解析器。

这是我所做的以及我在导航调用上方尝试的操作,ReuseRoute 或 onSameUrlNavigation 似乎都无法在组件上再次点击我的解析器。

问题是——应该吗?因为也许我在某个地方还有其他问题!

0 投票
1 回答
22 浏览

angular2-routing - call resolver function one more time

in routing I have next: {path: 'modules', component: ..., resolve: { modules: ModulesServiceResolver}, {path: 'modules/:id', component: ...}

and when I return back from child component - resolve not called one more time?

array of modules, which I get from modules resolver can be changed when I am in inner page. I want to get them?

how to call resolver one more time when return from child route?

UPD: modules I have done as separate module then in modules.routing done next { path: '', component: ModulesComponent, resolve: { projects: ModulesService }, runGuardsAndResolvers: 'always' }, { path: ':id', loadChildren: () => import('./module/module.module').then(m => m.ModuleModule) }

now works as needed

0 投票
1 回答
769 浏览

angular - 在调用 AppComponent.ngOnInit 之前加载数据

在我的 Angular 8 项目中,我有一个使用从服务器UserService请求电流的方法,并将响应异步分配给它的公共字段。我将 a注入并复制到它自己的字段中,该字段绑定到其 HTML 模板文件中定义的内容。为了强制Angular完成加载之前的调用,我实现了接口并将其设置为根路由(“”)的解析器。UserHttpClientuserUserServiceAppComponentngOnInitthis.userService.useruserspanUserngOnInitResolve<User>UserService

我的问题是,当应用程序启动时,在激活路由器之前AppComponent.ngOnInit调用,解析器从服务器加载,因此无法在其 HTML 中显示加载。是否可以在加载引导组件()之前加载数据,即在调用其方法之前?UserAppComponentUserAppComponentngOnInit

0 投票
2 回答
1967 浏览

angular - Angular多次导航到同一个组件

我正在尝试使用导航栏上的 [routerlink] 导航到同一条路线。因为在角度中,重定向到同一个组件以调用 ngOnint 是不可能的,我遇到了这个问题。

导航栏上的导航

构造函数中的代码

我的 ngOnInit 如下所示

第一次单击路由器导航后的路由器链接类似于

/客户/事件/进行中/sda3i4un34j3b42

但是当我尝试单击相同的导航按钮时,路由器链接如下所示

/客户/活动/

这里的问题是没有调用 getfunction() 和 OnInit 有人能解决这个问题吗?

谢谢

0 投票
1 回答
971 浏览

angular - 未在子延迟加载的路由上调用父解析器

我正在尝试根据不同的用户角色权限设置侧栏路线。设置侧栏路线的代码在站点解析器服务中。我在父路径中调用了它,我认为也应该为其子路径调用。但是,只有当我刷新特定的子路由时,才会调用此解析器。

这是我的站点路由服务的示例:

在这条路线上,我希望在不刷新的情况下调用解析器,所以我在下面尝试过,但没有工作。

runGuardsAndResolvers: '总是'

0 投票
2 回答
202 浏览

angular - Angular 解析器服务无法正常工作

我使用解析器服务列出角色和相应用户的列表。该列表在开始时并没有完全填满,但只要我按下任何按钮它就会加载。什么问题?第一张图片没有加载经理角色,但只要我点击任何按钮,它就会加载. 下图显示了经理角色,但前提是我单击了一个按钮。在此之前显示大纲框,但未显示角色名称。

在此处输入图像描述