渲染视图时,Underscore.js文件中的JS错误真的很奇怪

时间:2013-05-19 01:26:10

标签: backbone.js underscore.js

我现在有两个观点。一个列出了mongoDb对象的集合,另一个应该允许编辑er。列表视图完全正常,但每当我尝试渲染编辑视图时,我都会收到此错误:

Uncaught SyntaxError: Unexpected identifier

这是它失败的代码(Underscore.js的第1155行):

try {
      render = new Function(settings.variable || 'obj', '_', source);
Uncaught SyntaxError: Unexpected identifier
    } catch (e) {
      e.source = source;
      throw e;
    }

这是我的代码导致上面的代码运行:

render : function(){

                        var id = glob;

                        var skill = new SkillModel({_id:id});
                        skill.fetch();

                        console.log("BLAH");
                        var template = _.template($('#editTemplate').html(), {skill: {name:"Test", value:"Value", id:"123"}});

                        this.$el.html(template);

                        return this;
                    }

我发现了这一行:

var template = _.template($('#editSkillTemplate').html(), {});

是导致它发生的那一行。奇怪的是,我已经完成了所有事情,就像我的listView渲染功能一样,所以我不知道问题是什么。以防它有用,这是我的列表视图代码。

render : function(){
                var that = this;

                var skillset = new SkillSet();
                skillset.fetch({success: function(model, result){

                var template = _.template($('#skillsTemplate').html(), {items: result });

                that.$el.html(template);

                }}) 

                return this;            

            }

以下是模板:

<script type="text/template" id="editTemplate">
                <section>
                    <form id="editForm">
                        <label for="skillName"><input id="skillName" type="text" value="<%= skill.name %>" />
                        <br />
                        <label for="skillValue"><input id="skillValue" type="text" value="<%= skill.value $>" />
                        <br />
                        <a href="#/save/<%= skill.id %>"><button class="save">Save</button></a>
                        <a href="#/delete/<%= skill.id %>"><button class="delete">Delete</button></a>
                    </form>
                </section>
            </script>

1 个答案:

答案 0 :(得分:1)

简单的拼写错误:

<%= skill.value $>

应该是

<%= skill.value %>