无法在 Underscore 模板中呈现 Backbone 模型默认属性

Unable to render Backbone Model default attribute in Underscore template

我已经设置了我想在 Underscore 模板中使用的默认模型布尔值。当我在我的 initialize 方法中注销模型时,我看到了默认值,但是当它尝试渲染模板下划线 returns 时出现错误 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>

Fiddle: http://jsfiddle.net/kyllle/kw96kLdt/

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