Я использую шаблоны backbone.js и jQuery. То, что я хотел бы сделать, это установить шаблон представления в элемент dom. Это выглядит примерно так:
<script id="templateElement" type="text/x-jQuery-tmpl">
<div class='foo'>bar</div>
</script>
Когда представление инициализируется, оно увидит, существует ли шаблон с $ .isFunction. Если этого не произойдет, он получит его из внешнего файла и добавит возвращенный элемент dom к элементу body, а затем установит this.template для этого элемента dom.
В следующий раз, когда вызывается представление, этот элемент dom должен существовать, поэтому не должно быть оснований для повторного вызова AJAX. Тем не менее, я обнаружил, что хотя этот шаблон больше не является нулевым после вызова AJAX, он не определен, даже если его установка является частью обратного вызова. в результате мой AJAX-вызов выполняется каждый раз, когда отображается представление, даже если #templateElement является частью страницы.
Что происходит?
BbView = Backbone.View.extend({
template: $('#templateElement').template(),
initialize:
//this.template is null at this point
if(!($.isFunction(this.template))){
$.get('template/file.html', function(templates){
$('body').append(templates);
this.template = $('#templateElement').template();
});
}
//this.template is undefined at this point
...