3

Underscore.jsでBackbone.jsを学習しようとしていますが、問題が発生しました。サーバーフレームワークとしてGrailsを使用しているため、Underscore.js構文<%=%>は使用できません。{{}}スタイルに変更したい。私のJavascriptは多くのファイルに分かれており、それぞれが必要なすべてのオブジェクトのビューまたはモデルを表しています。これが私のビューのコードです:

$(function () {

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

    APP = window.APP || {};

    APP.PlaceView = Backbone.View.extend({
        initialize:function () {
            this.render();
        },
        el:"#place-form",
        formTemplate:_.template($('#search-template').html()),
        render:function () {
            //Pass variables in using Underscore.js Template
            var variables = { street:"Ulica" };

            this.$el.html(this.formTemplate({ "street":"Ulica" }));
        }
    });

    var view = new APP.PlaceView();
});

そしてテンプレート:

<script type="text/template" id="search-template">
    <!-- Access template variables with {{ }} -->
    <label>{{ street }}</label>
    <input type="text" id="search_input"/>
    <input type="button" id="search_button" value="Search"/>
</script>

このコードは、Uncaught SyntaxError:Unexpected token)エラーをスローします。しかし、_。templateSettings部分を削除すると、すべて問題ありませんが、変数がありません。

どうもありがとう。

4

1 に答える 1

10

私はそれがこの行のためにそのエラーを示していると信じています:

<!-- Access template variables with {{ }} -->

アンダースコアは、それを存在しない変数に置き換えようとしているため、エラーがスローされます。

于 2012-08-16T16:40:39.043 に答える