0

「<%%」「<%」の違いを教えてもらえますか

<%%= hello %>

<%= hello %>

私はグーグル検索で適切な答えを見つけることができませんでした。

説明があれば役に立ちます:)

**Index.html**

<div id="container">Loading...</div>
<script type="script/template" id="hello_sen">
<%= hello %>
</script>

**Backbone View**

class Bckbone.Views.EntriesIndex extends Backbone.View

initialize: ->
    @template = _.template($("#hello_sen").html())

render: ->
    datas = {hello: "Senthil"}
    $(@el).html(@template(datas))
    this
4

3 に答える 3

1

erbファイル内でスタイルアンダースコアテンプレート(デフォルト)を使用しているため、上記のスクリーンショットでエラーが発生しerbます。

内部のコード<%%>Rubyコードとして解析されています。

ここで説明するように、代替の補間文字列を使用する必要があります。

于 2012-12-23T20:27:34.043 に答える
0

Backbone.jsは、テンプレートを作成するためにunderscore.jsに依存しています。<%はアンダースコアの慣例です。<%%は、レールのERBタグをエスケープします。アンダースコアの設定は次のように変更できます。

 _.templateSettings = {
    interpolate: /\{\{\=(.+?)\}\}/g,
    evaluate: /\{\{(.+?)\}\}/g
};

または、<%%を使用して、行ごとにエスケープします。エスケープはまだ%>で終了します

詳細はこちら:Underscore.jsテンプレートを使用したRails

于 2013-10-01T06:27:11.167 に答える
0

私の推奨する解決策:テンプレートを部分的に移動し、ファイル名の.htmlの後に.erbを含めないでください。その場合、railsはそのファイルのERBを解析しません。

于 2016-11-01T18:56:25.617 に答える