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

时间:2015-10-19 08:45:42

标签: javascript backbone.js underscore.js

我已经设置了一个默认的模型布尔值,我想在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 个答案:

答案 0 :(得分:2)

delete是JavaScript reserved word,因此您无法将其用作标识符。更改属性名称,您的代码将按预期工作。