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

Uncaught Syntaxerror while using html template

本文关键字:语法 错误 html 使用      更新时间:2023-09-26

我使用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

编辑:我看到undercore.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> 

                        <% }; 
            %>      

还有我的Javascript代码:

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。我收到了所有的对象,它一直工作,直到我添加了图像。我只是没有发现任何)对我来说是错误的。

如果有人能给我一些解决方案,我将不胜感激。

图像中的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中得到一个异常。