Подчеркнуть шаблон Uncaught ReferenceError переменная не определена

Я пытаюсь отрисовать базовое базовое представление с помощью шаблона подчеркивания, но продолжаю получать следующую ошибку при попытке отрисовки шаблона.

Uncaught ReferenceError: сумма не определена

вот jsfiddle: http://jsfiddle.net/rkj6j36n/

HTML

<body>
    <div class="msg-con"></div>
</body>

JS

DumbViewObj = Backbone.View.extend({
    el: $('.msg-con'),
    initialize:function(){
        this.render();
    },
    render: function(){
        var template = _.template('I am <%= amount %> dumb',{amount:'200'});
        this.$el.append(template);
    },
});
var dumb = new DumbViewObj();

Я уверен, что решение очень простое, но я не могу понять

3 ответа

Решение

Поскольку template - это функция, а template( obj) возвращает строку, которую вы ищете, она не возвращает строку после ее вызова.

Что делает ваш код

var xxx = template();
this.$el.append(xxx);

что ты должен делать

render: function(){
    var template = _.template($('#dumb').html());
    var vars = {amount:200};
    var html = template(vars);
    this.$el.append(html);
},

В одну строку:

this.$el.append(_.template('I am <%= amount %> dumb')({amount:200}))

_.template компилирует шаблон в функцию. Вы должны передать параметры в результирующую функцию для оценки:

    var template = _.template('I am <%= amount %> dumb');
    this.$el.append(template({amount:'200'}));
Другие вопросы по тегам