【问题标题】:Use UrlResolver for component relative URLs将 UrlResolver 用于组件相对 URL
【发布时间】:2016-09-18 20:41:51
【问题描述】:

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

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

但是每次浏览器控制台只显示错误“No provider for UrlResolver!”。

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

顺便说一句:我正在使用 SystemJS。

我的组件.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')"/>

【问题讨论】:

  • 这将有助于我们中间的非通灵者显示产生此错误的代码行...
  • 我在我的问题中添加了一个示例。
  • 你使用的是哪个版本的 angular2?
  • 我正在使用最终版本。

标签: angular


【解决方案1】:

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

像这样:

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

但这对我来说并没有解决主要问题 - 如何获取资源的相对路径。 因为后来它开始抱怨“没有令牌应用程序包根 URL 的提供者!”。

也许你至少可以推得更远。

【讨论】:

  • 您是否能够找到“没有令牌应用程序包根 URL 的提供者!”的解决方案?问题,我正在努力解决这个问题:(
猜你喜欢
  • 2023-04-06
  • 1970-01-01
  • 2012-10-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-21
  • 2010-10-30
相关资源
最近更新 更多