Подчеркнуть шаблон 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'}));