我想使用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')"/>
答案 0 :(得分:1)
要直接回答您的问题,您应该将providers: [UrlResolver]
添加到@Component。
喜欢这样:
@Component({
moduleId: module.id,
templateUrl: "my-template.html",
providers: [UrlResolver]
})
但对我来说,这并没有给出主要问题的解决方案 - 如何获得资源的相对路径。 因为它开始抱怨&#34;没有提供令牌应用程序包的根URL!&#34;。
也许你至少可以进一步推进。