Underscore模板在IE中不起作用

时间:2014-05-05 13:25:49

标签: javascript jquery templates underscore.js

我无法弄清楚为什么我的模板无法在IE(任何版本)中使用

模板

<div id="Hero-Right">
<script type="text/html" id="heroItems">                        
      {{ _.each( planet.heroItems, function( heroItem ){ }}
      <div class="item first">
           img src="{{= heroItem.image }}" />
           <div class="item-text">
                {{= heroItem.text }}
           </div>
      </div>
      {{ }); }}
 </script>
 </div>

我的数据是

var data = {
        heroItems: [
            {
                image: "Images/Top-TV.png",
                text: "Watch the Tv Show"
            },
            {
                image: "Images/Top-Broc.png",
                text: "The Brand"
            }
        ]
     }

要渲染模板,我调用函数

function renderTemplate(data) {
    var template = _.template(
             $("#heroItems").html()
         );
    $("#Hero-Right").html(
            template(data)
        );
};

要使用小胡子分隔符我使用

更改了下划线定界符
 _.templateSettings = {
    interpolate: /\{\{=(.+?)\}\}/g,
    evaluate: /\{\{(.+?)\}\}/g,
};

这显示铬很好。

1 个答案:

答案 0 :(得分:2)

我假设您正在运行较旧的IE版本。在那种情况下:

_.templateSettings = {
    interpolate: /\{\{=(.+?)\}\}/g,
    evaluate: /\{\{(.+?)\}\}/g,     <-- Trailing Comma
};

删除尾随逗号