问题标签 [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.
angular - 使用路由解析器将静态数据传递给 Angular 8 中的路由组件是一种好习惯吗?
我们有一个User
组件接收用户对象作为@input
:
这里对应的模板:
在路由组件UsersList
(primary <router-outlet>
)中,我们需要在屏幕上显示用户列表:
然后,当我们单击从列表中选择一个用户时,我们使用相同的User
组件显示选定的用户数据,但这次是一个路由组件(名为<router-outlet name="selected">
):
这里我们的路线:
所以,这里的selectUser()
功能:
在我们的User
组件内部,我们需要实现OnInit
接口:
所有这一切都很好!我想知道的是,这样做是否是一个好习惯?
仅供参考,我也尝试使用路由解析器,但我无法访问该NavigationExtras
state
对象...在解析器中获取用户数据的唯一方法是将其传递为queryParams
. 当我们有 3 个属性时会很好,但是,如果我们有 10 多个属性,URL 就会变得丑陋和混乱。而且,解析器的角色似乎是解析异步数据而不是传递静态数据。
感谢您提供见解!
angular - 如何在 Angular 的解析器管道中进行过滤?
在我的 routes.ts 中,我有{ path: 'members', component: MemberListComponent, resolve: { users: MemberListResolver} },
.
我的组件中有以下代码:
我正在订阅方法中进行过滤,是否也可以在管道中执行此操作,如果可以,我该怎么做?
angular - 从 Angular 中的解析器返回 Observable 的目的
为什么要从 Angular 的解析器返回一个 Observable?这与简单地订阅组件本身的服务/存储中的方法有什么不同?我认为解析器的目的是确保数据在组件加载之前存在。
angular - 解决promise后如何加载html页面?
我正在尝试使用 Angular 和 Typescript 从 ASP .NET Core API 向 html 组件显示一些数据,响应返回正确的值并且承诺运行良好。
问题是在解决承诺之前加载了 html 页面,因此显示的值是未定义的。
承诺解决后,我可以使用什么来加载页面以及如何加载?
文件共享.component.ts
文件共享.component.html
共享模型.model.ts
javascript - 如果在同一组件上,Angular router.navigate 不会路由到解析器
我从页面顶部的导航栏组件执行搜索。从导航栏输入搜索条件时,我可以路由到我的“成员”组件页面,但是一旦我在“成员”组件上并更改查询参数并尝试再次运行 router.navigate(),我可以“ t 让 Angular 击中我的解析器。
这是我所做的以及我在导航调用上方尝试的操作,ReuseRoute 或 onSameUrlNavigation 似乎都无法在组件上再次点击我的解析器。
问题是——应该吗?因为也许我在某个地方还有其他问题!
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
angular - 在调用 AppComponent.ngOnInit 之前加载数据
在我的 Angular 8 项目中,我有一个使用从服务器UserService
请求电流的方法,并将响应异步分配给它的公共字段。我将 a注入并复制到它自己的字段中,该字段绑定到其 HTML 模板文件中定义的内容。为了强制Angular完成加载之前的调用,我实现了接口并将其设置为根路由(“”)的解析器。User
HttpClient
user
UserService
AppComponent
ngOnInit
this.userService.user
user
span
User
ngOnInit
Resolve<User>
UserService
我的问题是,当应用程序启动时,在激活路由器之前AppComponent.ngOnInit
调用,解析器从服务器加载,因此无法在其 HTML 中显示加载。是否可以在加载引导组件()之前加载数据,即在调用其方法之前?User
AppComponent
User
AppComponent
ngOnInit
angular - Angular多次导航到同一个组件
我正在尝试使用导航栏上的 [routerlink] 导航到同一条路线。因为在角度中,重定向到同一个组件以调用 ngOnint 是不可能的,我遇到了这个问题。
导航栏上的导航
构造函数中的代码
我的 ngOnInit 如下所示
第一次单击路由器导航后的路由器链接类似于
/客户/事件/进行中/sda3i4un34j3b42
但是当我尝试单击相同的导航按钮时,路由器链接如下所示
/客户/活动/
这里的问题是没有调用 getfunction() 和 OnInit 有人能解决这个问题吗?
谢谢
angular - 未在子延迟加载的路由上调用父解析器
我正在尝试根据不同的用户角色权限设置侧栏路线。设置侧栏路线的代码在站点解析器服务中。我在父路径中调用了它,我认为也应该为其子路径调用。但是,只有当我刷新特定的子路由时,才会调用此解析器。
这是我的站点路由服务的示例:
在这条路线上,我希望在不刷新的情况下调用解析器,所以我在下面尝试过,但没有工作。
runGuardsAndResolvers: '总是'