使用下划线的骨干模板

时间:2015-11-29 18:52:45

标签: javascript backbone.js underscore.js

我正在学习骨干。在使用underscore.js进行模板化时,我遇到了一个问题 以下是代码。

var V = Backbone.View.extend({
    el: "body",
    render: function () {
        var data = {
            name: "MyName"
        };
        this.$el.html(_.template('<%= name %>', data));
        return this;
    }
});

var v = new V();
v.render();  

输出:

result

应该是:

MyName

代码 - JSFiddle

我哪里错了?

1 个答案:

答案 0 :(得分:2)

您需要以data对象作为参数来调用/评估模板。

因此应该是:

_.template('<%= name %>')(data);

或:

_.template('<%= name %>')({
  name: "MyName"
});

根据documentation for the _.template function,您将data对象作为可选设置参数传递。

_.template(templateString, [settings]) 

Updated Example

var V = Backbone.View.extend({
    el: "body",
    render: function () {
        var data = {
            name: "MyName"
        };
        this.$el.html(_.template('<%= name %>')(data));
    }
});

var v = new V();
v.render();

输出:

MyName