2016-09-18 8 views
2

UrlResolverを使用して、テンプレート内のコンポーネント相対URLを使用したいと考えています。コンポーネントの相対URLにUrlResolverを使用する

、ここで説明したように、私はすでに私のコードでUrlResolverを実装しました:http://dfbaskin.com/posts/angular2-url-resolver-for-component-assets/

しかし、すべての時間は、ブラウザのコンソールは、単にエラーを示す「UrlResolverなしプロバイダーを!」。

私はAngularを完全に新しくしました。どのようにこの問題を解決するためのアイデア?

btw:SystemJSを使用しています。

マイcomponent.ts:

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

私たちの間で非精神病者がこのエラーを引き起こすコードの行を表示するのに役立ちます... –

+0

私は私の質問に例を追加しました。 – Programie

+0

どのバージョンのangular2 u rを使用していますか? –

答えて

1

は、あなたの質問に直接答えるために、あなたはproviders: [UrlResolver]を追加する必要があります:私のテンプレート(私の-template.html)私は、次のHTMLを持って

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); 
    } 
} 

あなたの@Componentに。このよう

:私のために

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

しかし、それは主な問題への解決策を与えていない - リソースへの相対パスを取得する方法。 そのため、「トークンアプリケーションパッケージのルートURLのプロバイダがありません!」という文句がありました。

多分、少なくともさらに押し込むことができます。

+0

「トークンアプリケーションパッケージのルートURLのプロバイダがありません」の解決策を見つけられましたか?問題、私はこの問題を解決するために私の頭を壊している:( –

関連する問題