在我的app.component.ts中,我有以下代码来获取路由名称,但我总是得到home
。有谁知道为什么?我希望得到例如contact
,import { Component } from '@angular/core';
import { Router } from '@angular/router';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss']
})
export class AppComponent {
constructor(private router: Router) {
console.log(router.url);
}
}
。
.myActive{
background:white;
color: red;
}
.navbar > li > a:hover,
.navbar > li > a:focus{
background: ;
color: #333;
}
答案 0 :(得分:10)
仅在应用程序加载时初始化AppComponent,并执行构造函数。因此它显示“/”的原因。当您导航到其他路由时,AppComponent将保持加载状态,并且不会再次执行构造函数。
如果您可以提供有关您要完成的内容的更多信息,我们可能会为您提供替代建议。
如果要查看路线并获取URL,可以在此处使用observable。像这样:
this.router.events.subscribe((event: Event) => {
if (event instanceof NavigationEnd) {
console.log((<NavigationEnd>event).url);
}
});
或者如果您只是想将它用于调试目的,您可以启用跟踪:
RouterModule.forRoot([
{ path: 'welcome', component: WelcomeComponent },
{ path: '', redirectTo: 'welcome', pathMatch: 'full' },
{ path: '**', component: PageNotFoundComponent }
], { enableTracing: true })
答案 1 :(得分:0)
如果要获取之前初始化的路由,则需要执行以下操作。
public static async Task StartFileListener()
{
try
{
//Start listening for incoming data
var listener = new TcpListener(IPAddress.Any, 39993);
listener.Start();
while (true)
{
using (var client = await listener.AcceptTcpClientAsync())
{
using (var stream = client.GetStream())
{
Directory.CreateDirectory(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + "\\test2");
using (var output = File.Create(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + "\\test\\" + "test2.dat"))
{
//Read the file in chunks of 10MB
var buffer = new byte[1024 * 1024 * 10];
int bytesRead;
while ((bytesRead = await stream.ReadAsync(buffer, 0, buffer.Length)) > 0)
{
await output.WriteAsync(buffer, 0, bytesRead);
}
}
}
}
}
}
catch (Exception e)
{
throw e;
}
}