今まで見たことのないものに出会っただけです。Backbone.jsのサンプルTODOアプリケーションのソース(Backbone TODO Example)では、テンプレートが内にあり<script type = "text/template"></script>
、PHPの外見のように見えるコードが含まれていますが、JavaScriptタグが含まれています。
誰かがこれを私に説明できますか?これは合法ですか?
今まで見たことのないものに出会っただけです。Backbone.jsのサンプルTODOアプリケーションのソース(Backbone TODO Example)では、テンプレートが内にあり<script type = "text/template"></script>
、PHPの外見のように見えるコードが含まれていますが、JavaScriptタグが含まれています。
誰かがこれを私に説明できますか?これは合法ですか?
回答:
これらのスクリプトタグは、(PHPのような)テンプレート機能を実装する一般的な方法ですが、クライアント側にあります。
タイプを「text / template」に設定すると、ブラウザが理解できるスクリプトではないため、ブラウザは単にそれを無視します。これにより、そこに何でも入れることができ、後で抽出して、テンプレートライブラリでHTMLスニペットを生成するために使用できます。
:そこにかなりの数のそこにいる-バックボーンは、特定のテンプレートライブラリを使用するためにあなたを強制しない口ひげ、HAML、エコ、Googleの閉鎖テンプレートなどは、(あなたがにリンクされている例で使用したものがあるunderscore.js)。これらは独自の構文を使用して、スクリプトタグ内に記述します。
.innerHTML
ので、現在、テンプレートエンジンでは一般的です。
<template />
タグ付けを楽しみにしています。html5rocks.com/en/tutorials/webcomponents/template&caniuse.com/#search=template
<template>
はここにありますが、サイトはreddit.comなどのこの手法をまだ使用しています。:F
それは合法でとても便利です!
これを試して:
<script id="hello" type="text/template">
Hello world
</script>
<script>
alert($('#hello').html());
</script>
いくつかのJavascriptテンプレートライブラリがこの手法を使用しています。Handlebars.jsは良い例です。
type
以外のスクリプトタグを設定text/javascript
すると、ブラウザはスクリプトタグの内部コードを実行しません。これはマイクロテンプレートと呼ばれます。この概念は、単一ページアプリケーション(別名SPA)で広く使用されています。
<script type="text/template">I am a Micro template.
I am going to make your web page faster.</script>
マイクロテンプレートの場合、スクリプトタグのタイプはtext/template
です。Jqueryの作成者であるJohn Resig http://ejohn.org/blog/javascript-micro-templating/によって非常によく説明されています
Box9の回答に追加するには:
Backbone.jsは、それ自体がJohn Resigの元のマイクロテンプレートを実装するunderscore.jsに依存しています。
RailsでBackbone.jsを使用する場合は、必ずJammit gemをチェックしてください。テンプレートのアセットパッケージを管理する非常にクリーンな方法を提供します。 http://documentcloud.github.com/jammit/#jst
デフォルトでは、JammitはJResigのマイクロテンプレートも使用しますが、テンプレートエンジンを置き換えることもできます。
これは、テキストをレンダリングまたは正規化せずにHTMLに追加する方法です。
次のように追加するのと同じです。
<textarea style="display:none"><span>{{name}}</span></textarea>
<img src="image.jpg">
内を含めても、ブラウザはfetchを実行しません。ブラウザは、textarea 内image.jpg
のコンテンツがレンダリングされるものではないことを認識しています。
</script>
場合、スクリプトタグ内では使用できないため、textareaを使用でき、その逆も可能です。
<script type = “text/template”> … </script>
廃止されました。<template>
代わりにタグを使用してください。
<template>
タグはIE 11の時点でInternet Explorerでまだサポートされていません
<template>
。ほとんどの主要なデスクトップブラウザがこの<template>
タグをサポートしています。今から使うことを強くお勧めします。developer.mozilla.org/en/docs/Web/HTML/Element/...
jQueryテンプレートは、このメソッドを使用して、直接レンダリングされないHTML(つまり、全体の要点)を他のHTML内に格納する例です。http: //api.jquery.com/jQuery.template/