当html中存在骨干模板时,百里香叶无法解析

时间:2016-03-16 09:51:43

标签: javascript backbone.js thymeleaf

百里香叶无法解析html文件,我希望在backbonejs视图中使用模板并提供以下错误消息:

  

org.xml.sax.SAXParseException:元素的内容必须包含   格式良好的字符数据或标记。

导致问题的html代码:

    <!-- models -->
<script type="text/template" id="template_slider">

  <div class="panel panel-primary">
    <div class="panel-heading">
      <h4 class="panel-title"><%= panel_title %></h4>
    </div>
    <div class="panel-body">
      <input id="<%= id %>" data-slider-id="<%= slider_id %>" type="text" data-slider-min="0" data-slider-max="100" data-slider-step="0.01" data-slider-value="0" />
    </div>
  </div>

</script>

问题的解决方案很简单,只需使用匹配的结束标记/*<![CDATA[*/ /*]]>*/,但是这会使主干失败,当我想创建新视图时抛出以下错误消息

  

未捕获的ReferenceError:未定义panel_title(匿名函数)@ VM2747:6template @ underscore.js:1461access @jquery.js:3626jQuery.fn.extend.html @jquery.js:5486Backbone.View.extend.render @ map .Control.js:92Backbone.View.extend.initialize @ map.Control.js:83Backbone.View @ backbone.js:1224child @ backbone.js:1884(anonymous function)@ map.Control.js:96o.Mixin.Events .fireEvent @ leaflet.js:6o.Path.o.Path.extend._fireMouseEvent @ leaflet.js:7o.Path.o.Path.extend._onMouseClick @ leaflet.js:7t。(匿名函数).s @ leaflet。 JS:8

有问题的js脚本:

 polyline.addEventListener('click', function() {
    var SliderView = Backbone.View.extend({
      initialize: function() {
        this.render();
      },
      render : function(){
        var variables = {
          panel_title : "Random",
          id : "my_id",
          slider_id : "my_idSlider"
        };
        var template = _.template( $("#template_slider").html(), variables );
        this.$el.html(template);
      }
    });

    var slider_view = new SliderView({ el: $("#slider_container")});
  });

我在没有弹簧和百里香的情况下离线尝试了js代码正常工作。

1 个答案:

答案 0 :(得分:2)

您必须将Thymaleaf配置为在HTML5Legacy模式下解析。

由于我不知道你是如何使用thymaleaf的,所以我无法为你提供工作代码。

您通常可以在配置文件中执行此操作,也可以通过注入视图配置器来执行此操作...