我有一个接口类型IRawParams,只需指定一个string键和值any.
interface IRawParams {
[key: string]: any
}
Run Code Online (Sandbox Code Playgroud)
我有一个类,ParamValues它包含键/值之上的一些行为.我想指定ParamValues该类实现IRawParams接口.
class ParamValues implements IRawParams {
parseFromUrl(urlString: string) {
Parser.parse(urlString).forEach(item => this[item.key] = item.val);
}
}
// so I can do something like this
var params = new ParamValues();
params.parseFromUrl(url);
var userId = params.userId;
Run Code Online (Sandbox Code Playgroud)
当我尝试这个时,我得到一个编译器错误:
错误TS2420:类'ParamValues'错误地实现了接口'IRawParams'."ParamValues"类型中缺少索引签名.
我可以让我的类实现IRawParams接口,或者获取Typescript以允许我的类的实例与索引类型兼容{[key: string]: any}吗?
我正在开发一个有角度的4应用程序,我想在router-outlet外加载login.page.ts
这是我的home.component.html文件
<div class="container">
<top-nav-bar></top-nav-bar>
<lett-nav-bar></lett-nav-bar>
<router-outlet></router-outlet>
</div>
Run Code Online (Sandbox Code Playgroud)
路线配置
const MAINMENU_ROUTES: Routes = [
{ path: 'login', component: LoginComponent },
{ path: '', redirectTo: 'home', pathMatch: 'full'},
{ path: 'home', component: HomeComponent, canActivate: [AuthGuard]}
];
Run Code Online (Sandbox Code Playgroud)
有了这个,我可以在路由器内加载登录页面,但我想在进入路由器插座之前全屏加载登录页面.
我知道这已经得到了回答,但我对给出的答案并不满意.
我的问题很简单,用户想要注销.
如果它位于需要登录的页面上(使用auth.service.ts在auth.guard.ts中设置)并且用户注销我希望将其重定向到主页.
但是,如果他在一个安全的页面上,我不想重定向他.
我可以使用AuthGuard,但我不想重新加载页面,所以没有:
location.reload()
Run Code Online (Sandbox Code Playgroud)
我的选择是什么?
我有一点问题.
我有app和Ido这个角6,我正在使用儿童路线
像这样
{
path:'pages', component:DatePagesComponent,
children : [
{path:'404', component:Error404Component},
{path:'500', component:Error500Component}
]
}
Run Code Online (Sandbox Code Playgroud)
我的HTML看起来像
<li [routerLinkActive]="['active']"><a [routerLink]="['/pages/404']">404</a></li>
<li [routerLinkActive]="['active']"><a [routerLink]="['/pages/500']">500</a></li>
Run Code Online (Sandbox Code Playgroud)
并且它使用url精确加载路由但总是加载到此 component:DatePagesComponent
如果我点击404比页面网址更改但不更改组件路由器
而我正在写作
<router-outlet></router-outlet>
Run Code Online (Sandbox Code Playgroud)
进入我的app.components.html档案
你能告诉我这是什么问题以及如何解决它.