Is it possible to load a Handlebars template via Ajax?

前端 未结 3 582
闹比i
闹比i 2020-12-02 23:36

I would like to load additional templates on the fly. Is it possible?

相关标签:
3条回答
  • 2020-12-03 00:35

    I was just looking for the same thing and am about to have a play with the snippet below

    credit: borismus on github https://gist.github.com/2165681

    <script>
    /*
     * Loads a handlebars.js template at a given URL. Takes an optional name, in which     case,
     * the template is added and is reference-able via templateName.
     */
    function loadTemplate(url, name, callback) {
      var contents = $.get(url, function(templateText) {
        var compiledTemplate = Ember.Handlebars.compile(templateText);
        if (name) {
          Ember.TEMPLATES[name] = compiledTemplate
        } else {
          Ember.View.create({ template: compiledTemplate }).append();
        }
        if (callback) {
          callback();
        }
      });
    }
    </script>
    
    0 讨论(0)
  • 2020-12-03 00:39

    You can register new templates in Ember.TEMPLATES. They will then be available to views.

    An excerpt from my code (jQuery Ajax handler):

    success: function(data) {
      $(data).filter('script[type="text/x-handlebars"]').each(function() {
        templateName = $(this).attr('data-template-name');
        Ember.TEMPLATES[templateName] = Ember.Handlebars.compile($(this).html());
      });
    }
    

    That's it.

    0 讨论(0)
  • 2020-12-03 00:42

    I am using requirejs along with text plugin to load handlebar templates dynamically.

    r.js optimizer will compile the handlerbar template to text file, which can be loaded easily using requirejs or even ajax

    0 讨论(0)
提交回复
热议问题