1

jspアプリでバックボーン付きのアンダースコアを使用しています。

それを行うために、私は以下を使用しました:

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

jspの競合を回避するために、口ひげのようなテンプレートを作成するため。

この時点までは、すべて問題ありません(つまり、テンプレートに単純な値を正しく入力します)。

ここで、json配列を表示するために、テンプレート内にforループを追加しようとしています。

だから私はこのコードを追加しました:

<script type="text/template" id="im-template">
<div class="row">                                       
    <div class="horizontal-scroll">
        {{ for (var i = 0; i < data.length; i++) { 
            var template = data[i];
            alert(template.name);
        } }}
    </div>
</div>
</script>

しかし、アプリを実行すると、次のようになります。

Uncaught SyntaxError: Unexpected token for 

何が問題なのか、どうすれば解決できるのか知っていますか?

前もって感謝します!

4

1 に答える 1

3

間違った正規表現を置き換えています。補間正規表現ではなく、評価正規表現を置き換えたいと考えています。細かいマニュアルから:

逐語的に補間する必要がある式に一致するように補間正規表現を定義し、HTMLエスケープ後に挿入する必要がある式に一致するようにエスケープ正規表現を定義し、結果の文字列に挿入せずに評価する必要がある式に一致するように評価正規表現を定義します。

補間は、テンプレートトークンをJavaScript式の結果に置き換えるために使用されますが、forループはJavaScriptの式ではありません。

次のようなループを使用する場合は、 evaluateregexを置き換えます。for

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

デモ: http: //jsfiddle.net/ambiguous/gaYRb/

于 2012-06-18T16:22:28.310 に答える