title: Marionette, how to change view's template on fly
body: <p>I'm doing a single page webApp with Marionette and RequireJs, basically it is a Layout view nested with a lots of ItemView and compositeView. I want the page change to a new design by one click, so I want to ask a best practice about changing the view's template.</p>
  
  <p>say, I got my view like this, and its templates are included by requirejs's text plugin:</p>
  
  <pre><code>define([
          'text!templates/designNo1/template.html'
  ], function(template) {
  
      var MyView = Backbone.Marionette.ItemView.extend({
  
          /*Template*/
          template: template,
  
          initialize: function() {
              ......
          },
  
          onRender: function() {
              ......
          }
      });
  
      return SkillView;
  });
  </code></pre>
  
  <p>every view and theirs subviews are defined like this. and their templates located in "template/designNo1" folder. now I got a set of new design located in "template/designNo2", and I want apply it to the page, but I found there is no chance to do this, because the views are already loaded by RequireJs and the template's path are hard-coded. of course, I can override the view's template when create the view's instance, but if I do so, I must load all the new design in the upper-module which create the instance, that looks bad, and the new design are keep coming, it gonna be a mess soon.</p>
  
  <p>so, any advice?</p>