如何从app.component获取路由名称?

时间:2017-07-25 19:28:48

标签: angular angular-routing

在我的app.component.ts中,我有以下代码来获取路由名称,但我总是得到home。有谁知道为什么?我希望得到例如contactimport { 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;
}

2 个答案:

答案 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;
    }
}