2015-10-19 89 views
3

我已经设置了默认的模型布尔值,我想在Underscore模板中使用。当我在initialize方法中记录模型时,我会看到默认值,但是当它尝试渲染模板下划线时,将返回错误Uncaught SyntaxError: Unexpected token)。任何人都可以提醒我可能会出现这种情况吗?无法呈现下划线模板中的骨干模型默认属性

JS

var PersonModel = Backbone.Model.extend({ 
    defaults: { 
     'delete': false 
    } 
}); 
var PersonView = Backbone.View.extend({ 

    template: _.template($('.js-template').html()), 

    initialize: function() { 
     console.log(this.model.toJSON()); 
    }, 

    render: function() { 
     this.$el.html(this.template(this.model.toJSON())); 

     return this; 
    } 
}); 

// Setup 
var personModel = new PersonModel(data, {parse:true}); 
var personView = new PersonView({ 
    model: personModel 
}); 

// Add to DOM 
$('.js-ctn').html(personView.render().el); 

模板

<script type="text/template" class="js-template"> 
    <h1>Hey, <%= name %></h1> 
    <p><%= delete %></p> 
    <button class="js-reset">Reset</button> 
</script> 

小提琴:http://jsfiddle.net/kyllle/kw96kLdt/

+1

我怀疑这是因为'delete'是一个保留字。你可以尝试另一个属性名称? – joews

+0

啊,就是这样!完全忘了! – styler

回答

2

delete是一个JavaScript reserved word,所以你不能使用它作为一个identifi呃。更改属性名称,您的代码将按预期工作。