0
Я практикую использование внешних шаблонов в Backbone js, и я получил этот TypeError, где говорится, что объект не имеет template
.Backbone js Отсутствует метод 'template'
Также как маршрутизатор распознает/вызывает просмотр, если он находится на другом пути и наоборот?
Я включил коды, которые я работаю:
profile.js
window.ProfileView = Backbone.View.extend({
initialize: function() {
this.render();
},
render: function() {
$(this.el).html(this.template());
return this;
}
});
main.js
var AppRouter = Backbone.Router.extend({
routes: {
'profile' : 'profile'
},
profile: function() {
this.profileView = new ProfileView();
$('#global-content').html(this.profileView.el);
}
});
utils.loadTpl (['profile'], function() {
appRouter = new AppRouter();
Backbone.history.start();
});
utils.js
window.utils = {
loadTpl: function(views, callback) {
var deferreds = [];
$.each(views, function(index, view) {
if (window[view]) {
deferreds.push($.get('templates/' + view + '.html', function(data) {
window[view].prototype.template = _.template(data);
}));
} else {
// alert(view + " not found");
}
});
$.when.apply(null, deferreds).done(callback);
}
};
правильно, он избавился от ошибки, но шаблон по-прежнему не отображается – OneScrewLoose
Как вы настройки шаблона, это не очевидно в коде, который вы. Обычно я использую require.js для извлечения ресурса, затем я специально устанавливаю шаблон, например. 'template: template,' в самом представлении –
было указано в utils.js. Я намеренно не использовал require.js со ссылкой на [this] (https://github.com/ccoenraets/nodecellar/tree/master/public) – OneScrewLoose