将UrlResolver用于组件相对URL

时间:2016-09-18 20:41:51

标签: angular

我想使用UrlResolver在我的模板中使用组件相对URL。

我已经在我的代码中实现了UrlResolver,如下所述:http://dfbaskin.com/posts/angular2-url-resolver-for-component-assets/

但每次浏览器控制台只显示错误"没有UrlResolver的提供商!"。

我对Angular完全陌生。知道如何解决这个问题吗?

btw:我正在使用SystemJS。

我的component.ts:

import {Component} from "@angular/core";
import {UrlResolver} from "@angular/compiler";

@Component({
    moduleId: module.id,
    templateUrl: "my-template.html"
})

export class PageNotFoundComponent {
    constructor(private urlResolver: UrlResolver) {
    }

    public resolvePath(path) {
        return this.urlResolver.resolve(module.id, path);
    }
}

在我的模板(my-template.html)中,我有以下HTML:

<img [src]="resolvePath('some-resource.png')"/>

1 个答案:

答案 0 :(得分:1)

要直接回答您的问题,您应该将providers: [UrlResolver]添加到@Component。

喜欢这样:

@Component({
    moduleId: module.id,
    templateUrl: "my-template.html",
    providers: [UrlResolver]
})

但对我来说,这并没有给出主要问题的解决方案 - 如何获得资源的相对路径。 因为它开始抱怨&#34;没有提供令牌应用程序包的根URL!&#34;。

也许你至少可以进一步推进。