Неперехваченная ошибка типа: шаблон не является функцией

#javascript #spacebars

#javascript #пробелы

Вопрос:

Я не уверен, почему я получаю эту ошибку:

 assignment.js:103 Uncaught TypeError: template is not a function
  

Код:

 var current_category = animals_data.category[0];
var current_animal = current_category.animals[0];

function showTemplate(template, data){
    var html = template(data);
    $('#content').html(html);
}
  

Я использую пробелы для компиляции как таковой:

 $(document).ready(function() {

    //
    // compile all of our templates ready for use
    //
    var source   = $("#category-template").html();
    category_template = SpacebarsCompiler.compile(source);

    source   = $("#animals-template").html();
    animals_template = SpacebarsCompiler.compile(source);


    source   = $("#animal-template").html();
    animal_template = SpacebarsCompiler.compile(source);

    // 
    //  clicking on the categorys tab shows the 
    //  thumbnails of all the categorys
    //

    $("#category-tab").click(function () {

        // displays the categorys template
        showTemplate(category_template, animals_data);

        // make the categorys tab the active one
        // first make the currently active tab inactive
        $(".nav-tabs .active").removeClass("active");
        // then make categorys tab active
        $("#category-tab").addClass("active");


                $(".category-thumbnail").click(function (){

            // get the index (position in the array)
            // of the category we clicked on
            // "this" is the element that was clicked on
            // data("id") gets the attribute data-id
            // (which we set to the index of the category in
            // the array - @index)
            var index = $(this).data("id");

            // set the current category to this category
            current_category = animals_data.category[index];

            // displays the animals template
            showTemplate(animals_template, current_category);

            // add an on click al all the animal thumbnails
            // which displays the animal in a modal popup
            $(".animal-thumbnail").click(function (){
                // get the index (position in the array)
                // of the  we clicked on
                // "this" is the element that was clicked on
                // data("id") gets the attribute data-id
                // (which we set to the index of the animal in
                // the array - @index)
                var index = $(this).data("id");

                // set the current animal to this animal
                current_animal = current_category.animals[index];

                // displays the single animal template
                showTemplate(animal_template, current_animal);
            });
        });


    });


        $("#animal-tab").click(function () {

        // displays the animals template
        showTemplate(animals_template, current_category);

        // make the animals tab the active one
        // first make the currently active tab inactive
        $(".nav-tabs .active").removeClass("active");
        // then make animals tab active
        $("#animal-tab").addClass("active");

        // add an on click al all the animal thumbnails
        // which displays the animal in a modal popup
        $(".animal-thumbnail").click(function (){
            // get the index (position in the array)
            // of the animal we clicked on
            // "this" is the element that was clicked on
            // data("id") gets the attribute data-id
            // (which we set to the index of the animal in
            // the array - @index)
            var index = $(this).data("id");

            // set the current animal to this animal
            current_animal = current_category.animals[index];

            // displays the single animal template
            showTemplate(animal_template, current_animal);
        });
    });



    $("#category-tab").click();



});
  

Комментарии:

1. В вашей функции вызывается аргумент showTemplate . template Когда вы используете эту функцию, передаете ли вы функцию в качестве первого аргумента?

2. привет, Мишель, да, это так, и, как ни странно, до того, как handlebars устарел, он работал нормально, теперь это проблема, поскольку я перешел на spacebars.