2016-05-25 5 views
0

コンポーネントにtemplateUrlを設定しようとすると、奇妙なエラーが発生します。templateUrlをAngular2に設定できません

これは動作します:

@Component({ 
    selector: 'buildingInfo', 
    template: ` 
     <html>stuff</html> 
    ` 
}) 

しかし、私はこの(HTMLファイルで同じ内容を持つ)を行うとき:

@Component({ 
    selector: 'buildingInfo', 
    templateUrl: 'stuff.component.html' 
}) 

を出力はこれです:

<span>M</span> 
<span>M</span> 
<fakediscoveryelement></fakediscoveryelement> 
<span>M</span> 
<fakediscoveryelement></fakediscoveryelement> 
<span>M</span> 
<span>M</span> 
<span>M</span> 
<span>M</span> 
<span>M</span> 
<span>M</span> 
<span>M</span> 
<span>M</span> 

なぜこのようなことが起こるのか分かりません。他のほとんどすべてのコンポーネント(ただしすべてではない)上でHTML用に別のファイルを使用しようとすると、同じ出力が得られます。

答えて

3

Angularがコンポーネントに対してテンプレートを検索するようにしたい場合、あなたは

アプリのような構造を持っている/

アプリは/ app.component.ts

アプリ/ app.component.html

必ず、あなたは部品のモジュールIDを設定してください。これにより、システムローダーが現在のパスを基準にして表示されます。それ以外の場合は、となります。は完全なパスをURLとして想定します。 SystemJSため

例:他の人のための

declare var __moduleName: string; 
@Component({ 
    moduleId: __moduleName, 
    selector: 'foo-bar', 
    templateUrl: 'app.component.html', 
}) 

例:

@Component({ 
     moduleId: module.id, 
     selector: 'foo-bar', 
     templateUrl: 'app.component.html', 
    }) 

は、これはそれが私が持っているHTMLコンテンツのほんの一例:)

1

テンプレートに<html>タグを使用することはできません。 <html>はHTMLファイルのトップレベルタグであり、Angularアプリケーションは<body>上または内でのみ使用でき、<body>には<html>タグを含めることはできません。

+0

た取得するために私にいくつかの時間がかかりましたそこに... –

+0

あなたはPlunkerで再現できますか? –

関連する問題