angular - Nativescript 和 Angular 路由 - URL 段错误
问题描述
在我的 Nativescript/Angular 应用程序中,我有一个名为 UsersModule 的主模块;它包含两个模块,UsersListModule 和 ManageUserModule。这是结构: - 用户
- users
- manageUsers
* manageUsers-routing.module.ts
* manageUsers.component.ts
* manageUsers.component.html
* manageUsers.module.ts
- usersList
* usersList-routing.module.ts
* usersList.component.ts
* usersList.component.html
* usersList.module.ts
* users-routing.module.ts
* users-routing.module.html
* users.component.ts
* users.module.ts
这是应用程序路由:
const routes: Routes = [
{ path: "", redirectTo: "/login", pathMatch: "full" },
{ path: "login", component: LoginComponent },
{ path: "users", loadChildren: "~/app/users/users.module#UsersModule", canActivate: [AuthGuard] }
];
这是UsersRoutingModule:
const routes: Routes = [
{
path: "default", component: UsersComponent, canActivate: [AuthGuard], children: [
{ path: "usersList", component: NSEmptyOutletComponent, loadChildren: "~/app/users/usersList/usersList.module#UsersListModule", outlet: "usersList" },
{ path: "manageUsers", component: NSEmptyOutletComponent, loadChildren: "~/app/users/manageUsers/manageUsers.module#ManageUsersModule", outlet: "manageUsers" },
]
}
];
这是用户列表路由:
const routes: Routes = [
{ path: "", redirectTo: "usersList" },
{ path: "usersList", component: UsersListComponent }
];
这是 MangeUsers 路由:
const routes: Routes = [
{ path: "", redirectTo: "newUser" },
{ path: 'newUser', component: ManageUserComponent },
{ path: 'editUser/:userId', component: ManageUserComponent }
];
这是 users.component.html:
.....
<page-router-outlet name="usersList"></page-router-outlet>
<page-router-outlet name="manageUsers"></page-router-outlet>
.....
问题是当我在用户列表中并且我想去编辑选定的用户时,角度无法找到段 url 并且无法重定向我。在 UsersListComponent 我有这个功能:
goToEdit(data) {
let urlTree = this.router.createUrlTree(['../editUser', data.userId], {
relativeTo: this.activeRoute
});
this.routerExtensions.navigateByUrl(urlTree);
};
但是如果我尝试去编辑它会返回这个错误:
ERROR 错误:未捕获(在承诺中):错误:无法匹配任何路由。URL 段:“用户/默认”
我在 users.component 的 sidenav 中有一个类似的问题,我尝试:
open() {
this.closeSideDrawer();
const urlTree = this.router.createUrlTree(['/users/newUser'], {
relativeTo: this.activeRoute
});
this.routerExtensions.navigateByUrl(urlTree);
}
但是如果我单击它,它不会重定向,它只会关闭侧边栏并且什么也没有发生
解决方案
推荐阅读
- html - CSS未在iPhone上加载
- java - 如何在开始时折叠 AppBarLayout?
- ios - 如何在另一个对象内部深入访问和编辑一个对象(swift)
- javascript - 将完整的 Stripe 付款要求添加到表单中
- .net - Powershell - .net 远程注册表返回空白
- excel - 为什么 (&HFFFF00 和 &HFF00) = &HFFFF00?
- node.js - 自定义技能不执行传递 Promise 的异步函数
- c# - 从 varchar 值转换为 int 值时出错
- repository - 创建本地 ubuntu 软件包存储库
- angular - 使用 `ng build --prod' 构建时出现 Angular 内部错误