我正在构建一个用户可以选择要使用的页面的cms.因此,如果用户想要一个联系页面,他们会选择它并为其填写一些内容,并且他们的网站会有一个contact路由.基于此,是否可以根据用户是否想要特定页面动态添加角度路线?
我通过设置路由配置@NgModule.我有一项服务,根据特定条件确定应该为用户显示应用程序的哪些部分.我需要调用该服务并根据返回的值设置路由.
问题:路径配置是在注释中设置的,我无法在这样的设置中获得如何调用服务.
这里更具体的是我想要增强的示例配置.
我目前的路由设置:
const appRoutes: Routes = [
{
path: '',
redirectTo: 'first-route',
pathMatch: 'full'
},
{
path: 'first-route',
component: FirstComponent,
pathMatch: 'full'
},
{
path: 'second-route',
component: SecondComponent,
pathMatch: 'full'
},
...
];
@NgModule({
imports: [RouterModule.forChild(appRoutes)],
exports: [RouterModule]
})
export class MyRoutingModule {
}
Run Code Online (Sandbox Code Playgroud)
应该更改路由设置的服务:
@Injectable()
export class MyService {
getAccessibleRoutes(): Observable<string[]> {...}
}
Run Code Online (Sandbox Code Playgroud)
问题:如何拨打服务电话并更改路线?
注意:我还查看了"动态添加Angular中的路由"和"我们如何动态地将新路由添加到RouterModule(@NgModule导入)",但我还没有找到明确的答案.
目前,我在我的项目中设置了路由.每个新用户都被重定向到:
本地主机:4200 /默认的路径/登录
一旦用户登录,它们就会被重定向到主模块,主模块有一些用户可以导航到的子路由.
localhost:4200/default-path/home
localhost:4200/default-path/home/account
localhost:4200/default-path/home/account/profile
localhost:4200/default-path/home/dashboard
... 等等.
现在,粗体部分已在主页模块中设置,无需进一步编辑.但是,我想换个default-path别的东西.
比如说,每个用户都可以属于三个项目之一:项目蓝色,红色或绿色.只有在用户提交凭据并点击登录按钮后,才能使用此信息.
登录后我想要的路线是:
localhost:4200/project-blue/home
localhost:4200/project-red/home
localhost:4200/project-green/home
请记住,粗体部分不是具有不同关联组件的不同模块,它们只是我想在URL中看到的常量.
目前,我<base>在索引中的标记就像<base href='/'>我正在尝试编辑此属性.我得到的是:
processLoginSuccess(loginTicket): void {
const routeName = loginTicket.baseUrl // returns 'project-red'
let b = document.getElementsByTagName('base')[0]
b.setAttribute('href', routeName )
this._router.navigate(['/home']);
}
Run Code Online (Sandbox Code Playgroud)
但这似乎不起作用.
有任何想法吗?
我有一个 Angular 应用程序,它应该能够根据用户创建新路线。比方说,用户johndoe的“寄存器,然后应用程序应该创建一个路线:domain/johndoe。
当然,/johndoe路线应该提供一些关于特定用户的信息(如姓名、图像等)。
我使用 Google Cloud Hosting 和 Firestore 作为后端解决方案,到目前为止我的进展是将 注入Router到我的AppComponent构造函数中,然后unshift在router.config. 那种工作,但我必须将所有新路由('用户')存储到我的数据库中的一个单独的文件中,然后每次有人导航到一个私有的死记硬背(例如domain/johndoe)时查询数据库。
是否有一个美观且易于维护的解决方案,它考虑了我的后端配置?
angular ×5
angular7 ×1
angular8 ×1
dynamic ×1
html ×1
javascript ×1
lazy-loading ×1
routes ×1
routing ×1
typescript ×1
url-routing ×1