17

別のHTMLファイルからテンプレートをロードしたいという非常に単純なディレクティブがあります。HTMLでディレクティブを置き換えたいので、replace: trueプロパティをディレクティブに追加します。ただし、これを行うと、テンプレートがまったく含まれません。

これを確認できるjsFiddleを作成しました。templateFirebugなどを使用してDOMを検査する場合、プロパティのみを使用すると、要素が置き換えられることがわかります。離陸すると、foo要素に追加されるreplace: trueHTMLを確認できます。templateUrlただし、を追加するreplace: trueとすぐにtemplateUrl、表示<foo></foo>されるのはDOMだけです。

これらの2つのプロパティを一緒に使用できない理由はありますか?私はjavascriptの専門家からはほど遠いので、ここで何が起こっているかについての情報をいただければ幸いです。

4

2 に答える 2

34

のhtmlのコンテンツにtemplateUrlルート要素が1つだけ含まれていることを確認してください。これは、次の場合は問題ではありませんが、次のreplace: false場合に問題にreplace: trueなります(FireBugを使用)。

Error: Template must have exactly one root element.

これは、 (2つのルート要素で)機能していないjsFiddleと、機能している別のjsFiddleです。

于 2012-07-11T17:33:44.227 に答える
2

良い質問。私が間違っていなければ、あなたは「トランスクルージョン」を使いたいでしょう

http://jsfiddle.net/dandoyon/AsVp8/1/

トランスクルージョンを使用すると、テンプレートをHTMLの内容とブレンドできます。ドキュメントをもう一度見て、このオプションを探すことをお勧めします。

乾杯!

于 2012-07-11T17:03:07.173 に答える