在我的Angualar 2(final)应用程序中,我经常需要通过路由名称(例如'/ products')创建完整的(绝对)网址,例如提供到特定页面的永久链接或从另一个选项卡/窗口中的组件打开页面。

是否有任何Angular 2 API,可以通过路由名称获取绝对网址?如果否,是否有已知的解决方法,例如使用JavaScript?

我已经尝试了location或PathLocationStrategy(例如prepareExternalUrl),但是该方法返回的是'/ products'而不是例如http://localhost/products

最佳答案

您可以使用PlatformLocation来获取base_url,然后可以将其与prepareExternalUrl的返回值连接起来:

    import { PlatformLocation } from '@angular/common';

    export class MyComponent {
        constructor(
            private platformLocation: PlatformLocation
        ){
            this.logAppStart(platformLocation);
        }

        private logAppStart(platformLocation: any){ // CHANGED THE TYPE TO ANY TO BE ABLE TO ACCESS THE LOCATION PROPERTY
            console.log(platformLocation.location); // HERE YOU FIND WHAT YOU NEED
        }
    }

找到here

关于javascript - 如何在Angular 2中通过路线名称获取绝对网址?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41447305/

10-12 07:00