JST с Backbone и Underscore

Я использую Backbone и Underscore для создания небольшого тестового сайта.

Я компилирую все мои файлы шаблонов html в один JST файл javascript, как предлагается здесь и здесь.

Однако не очень очевидно, как использовать это с файлами шаблонов. Я пробовал это:

App.HeaderView = Backbone.View.extend({
    el: '#headerContent',
    template: JST['header.html'](),
    //template: window["JST"]["header.html"],
    //template: _.template("<h1>Some text</h1>"),

    initialize: function () {
        this.render();
    },

    render: function() {
        //var html = this.template();
        //// Append the result to the view element.
        //$(this.el).append(html);
        this.$el.html(this.template());
        return this; // enable chained calls
    }
});

Ошибка, которую я получаю, это JST.header.html не является функцией.

(Последний бит с комментариями работает с помощью template: _.template("<h1>Some text</h1>"), поэтому я знаю, что проблема не в чем-либо еще).

Возможно, это связано с тем, что я пользуюсь браузером (поэтому попробовал "потребовать" файл), но я попробовал несколько разных способов "включить" файл шаблона, включая его добавление напрямую:

<script src="templates/_templates.js"></script>
<script src="js/functions.js"></script>
</body>
</html>

Любые идеи, что нужно сделать, чтобы заставить это работать?

Ответ 1

В строке 3 вы не хотите ссылаться на шаблон, а просто используйте:
template: JST['header.html'].

В настоящее время вы устанавливаете шаблон равным возвращаемому значению функции, а затем пытаетесь вызвать это возвращаемое значение вместо фактической функции, поэтому он поднимает ошибку "не является функцией".