2016-04-06 12 views
3

検索中に、moduleIdという名前のファイルが見つかりましたが、テンプレートとCSSファイルの相対パスを設定しましたが、angular2のコンポーネントでmoduleIdを使用する方法は正確にわかりません。templateUrlとstyleUrlsのAngular2相対パス?

実際には、問題は私のフォルダ構造にあります。distフォルダからすべての.jsファイルをロードしていますが、ビュー(.htmlファイル)はsrcフォルダにあります。だから、この角度のようなmoduleId: module.idを使うと、srcフォルダではなく、distフォルダからのパスが取られました。

私のコンポーネントangualr2にカスタムmoduleIdを設定する方法を教えてもらえますか?

このような私のフォルダ構造。

        App 
            /\ 
           /\ 
      (.js + .map files)Dist Src(.ts + .html + .css files) 
  • フォルダディストは、すべての.MAPとの.jsファイル
  • フォルダのsrcが全て.TS、.HTML、との.cssファイルをcontaines containes。

実際の符号化(作業) -

@Component({ 
    selector: 'class-timing', 
    templateUrl: 'src/components/TimeTable/class-timing/class-timing.html', 
    styleUrls: ['src/app.css'] 
}) 

が(誤ったパスに動作していない)のコーディング修正 -

@Component({ 
    selector: 'class-timing', 
    templateUrl: 'class-timing.html', 
    moduleId: module.id, 
    styleUrls: ['src/app.css'] 
}) 

私も持っていた、このチュートリアルに http://schwarty.com/2015/12/22/angular2-relative-paths-for-templateurl-and-styleurls/

+1

がhttp://stackoverflow.com/questions/34556154/using-relative-path-for-templateurl関連思える役立つかもしれません-in-angular2-component-with-systemjs、https://github.com/angular/angular/issues/6053、https://github.com/angular/angular/issues/2383#issuecomment-176461396 –

+0

関連するyupsしかし、私が欲しいものは正確ではありません。あなたはこの質問について考えていますか? –

+1

いいえ、私はTSを自分で使っていません、Plunkersのためだけです;-) –

答えて

6

は、このような実行時にファイルをインポートする(srcからdistへ)のパスを変更することで、私の問題を解決しました: -

moduleId: module.id.replace("/dist/", "/src/") 

そうすることであなたは、モジュールIDのパスのディレクトリを変更することができます。このawesome comment

PS用@Nicolaiへ

感謝: - 答えとして投稿が誰か

1

を参照TemplateUrlパスでうまくいけばうまくいかなかったことについていくつかの質問があります。私は次のように私のテストでは本当だったが見つかりました:

templateUrl:「/フォルダ名/ファイル名」

templateUrlを動作しませんでした:「フォルダ名/ファイル名は」

templateUrlを動作しませんでした " ./folder name/file name 'DID work

あなたはそれを試してみるかもしれません。

+0

does not work 、すでに試して、btwこれらの3つの違いは何ですか? –

+1

相対文字列(/、./、../で始まる)と、相対文字列でない相対パスと、それらがhttps://www.typescriptlang.org/docs/handbook/module-resolutionでどのように解決されているかについての良い説明があります。 html – ckapilla