使用html模板时未捕获语法错误

时间:2013-07-20 13:20:33

标签: javascript html templates underscore.js parse-platform

我正在使用html模板和javascript来填充带有几个元素的div。

在我尝试将图像添加到该模板之前,这一切都很好。

现在我每次都会收到以下错误:

Uncaught SyntaxError: Unexpected token ) underscore-min.js:1
w.template underscore-min.js:1
query.find.success Liste.js:89
(anonymous function) parse-1.2.8.min.js:2
r parse-1.2.8.min.js:2
(anonymous function) parse-1.2.8.min.js:2
w.each.w.forEach parse-1.2.8.min.js:1
n.extend.resolve parse-1.2.8.min.js:2
r parse-1.2.8.min.js:2
(anonymous function) parse-1.2.8.min.js:2
w.each.w.forEach parse-1.2.8.min.js:1
n.extend.resolve parse-1.2.8.min.js:2
r parse-1.2.8.min.js:2
(anonymous function) parse-1.2.8.min.js:2
w.each.w.forEach parse-1.2.8.min.js:1
n.extend.resolve parse-1.2.8.min.js:2
(anonymous function) parse-1.2.8.min.js:2
r parse-1.2.8.min.js:2
n.extend.then parse-1.2.8.min.js:2
r parse-1.2.8.min.js:2
(anonymous function) parse-1.2.8.min.js:2
w.each.w.forEach parse-1.2.8.min.js:1
n.extend.resolve parse-1.2.8.min.js:2
c.onreadystatechange

编辑:我在下划线中查看了巫婆行.js不起作用,错误在这一行:

render = new Function(settings.variable || 'obj', '_', source);

我的html模板如下:

<% for(var i = 0; i < wohnungen.length; i++)
                        { %>        
                        <% var wohnung = wohnungen[i]; %>

                        <img width="100px" height="100px" src="<%=wohnung.bild=%>"></img>

                        <div class="list-item" id="wohnung-"+'<%= i+1 %>'>
                            <div class="absolute-wrapper">
                            <dl class="dl-horizontal">
                            <dt>Anschrift</dt>
                            <dd><%= wohnung.strasse %></dd>
                            <dt>Miete</dt>
                            <dd><%= wohnung.miete %> €</dd>
                            <dt>Kaution</dt>
                            <dd><%= wohnung.kaution %> €</dd>
                            <dt>Flaeche</dt>
                            <dd><%= wohnung.flaeche %> m<sup>2</sup></dd>
                            </dl>
                            </div>
                        </div> 


                        <% }; 
            %>      

我的Javascriptcode:

query.find({
          success: function(results) {
            var objects = [];

            // Do something with the returned Parse.Object values
            for (var i = 0; i < results.length; i++) { 
                objects.push(results[i]);

            };

            for (var i = 0; i < results.length; i++) { 




                var bildurl = objects[i].get('Bild').url();

                wohnungen.push({strasse: objects[i].get('Strasse'), miete: objects[i].get('Miete'), kaution: objects[i].get('Kaution'), flaeche: objects[i].get('Flaeche'), bild: bildurl});

            };

            var templateString = document.getElementById('list_tmpl').innerHTML;
            $(ausgabe).append(_.template(templateString, {wohnungen: wohnungen}));

          },
          error: function(error) {
            alert("Error: " + error.code + " " + error.message);
          }
        });

查询来自Parse.com API。我收到了所有的对象,直到我添加了图像。我只是没有找到任何对我来说错了。

如果有人能给我某种解决方案,我真的很感激。

1 个答案:

答案 0 :(得分:1)

图片中的src属性有一个迷路尾随=

<img width="100px" height="100px" src="<%=wohnung.bild=%>"></img>
------------------------------------------------------^

那应该是这样的:

<img width="100px" height="100px" src="<%=wohnung.bild %>"></img>

当您致电_.template时,它会将您的模板转换为JavaScript,然后将该JavaScript交给new Function以获取已编译的模板,从而确定您的错误位置。您的<%=wohnung.bild=%>最终会被转换为一些看起来像这样的JavaScript:

__p += '' + ((__t = ( x= )) == null ? '' : __t) + '';
// bad syntax ---------^

这不是有效的JavaScript,因此您会从new Function获得例外。