Я пытаюсь отобразить HTML-код с помощью функции шаблона подчеркивания. Проблема в том, что я получаю Uncaught ReferenceError: data is not defined
, когда загружаю скрипт локально на своей машине.Uncaught ReferenceError с использованием шаблона подчеркивания с основой
Кажется, что работает на jsfiddle, но не в моей среде, и я понятия не имею, почему. Вот working js fiddle.
и вот мой код:
define([
'jquery',
'backbone',
'underscore',
'moment',
'bootstrap-modal',
'domReady!'
], function (
$,
Backbone,
_,
moment
) {
'use strict';
/**
* Represents a booking modal view
*/
return Backbone.View.extend({
defaults: {
modalHeadingHtml: '<div class="modal-header"> <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button> <h4 class="modal-title"><%= data.title %></h4> </div>',
modalBodyHtml: null,
modalFooterHtml: null
},
template: _.template('<div class="modal-dialog"><div class="modal-content"><%= data.content %></div></div>'),
className: 'wl-car-book-modal modal wl-modal fade',
/**
* Initializes booking modal view.
*/
initialize: function (options) {
this.options = _.extend({}, this.defaults, this.options);
$('body').append(this.render().el);
this.$el.modal()
var data = {data: { title: 'fooo'}};
var tpl = _.template(this.options.modalHeadingHtml);
this.$('.modal-content').append(tpl(data));
this.open();
},
render: function() {
var wrapperHtml = this.template({data: {content: 'test'}});
this.$el.html(wrapperHtml);
return this;
},
open: function() {
this.$el.modal('show');
},
close: function() {
this.$el.modal('hide');
}
});
});
Да, есть некоторые различия, но в основном это просто о кажущейся неопределенной переменной в функции инициализации.
Любая помощь была бы принята с благодарностью, спасибо.
Вы используете два шаблона, который вызывает ошибку? –
Не нашел 'this. $ El.modal()' в скрипке, это совсем другое. Кроме того, как вы создаете представление? Вы проверили, что функция el имеет функцию «модальный». –