在没有Ember的情况下编译Emblem.js

时间:2013-05-15 04:35:34

标签: javascript ember.js handlebars.js emblem.js

我正在尝试emblem.js。它是Handlebars编写模板的一个非常好的包装器。但是,docs有点ember.js和handlebars.js依赖。我想在没有Ember的情况下使用Emblem.js,但是没有关于如何编译模板的真实解释。

那么我们可以在没有ember的情况下使用emblem.js(或者更好,没有Handlebars依赖)?我现在这样做的方式,我有这个函数来渲染模板:

function render(target, tmpl, data) {
    var source   = tmpl.html();
    var template = Emblem.compile(Handlebars, source);
    var result = template(data);

    target.html(result);
}

这是编译Emblem的正确方法吗?它有效,但我有一种直觉,认为有更好的方法可以做到这一点。在Handlebars中,编译行非常相似:

var template = Handlebars.compile(source);

感谢您的回答。

1 个答案:

答案 0 :(得分:7)

你实际上是在正确地做到这一点。

Emblem编译为Handlebars运行时,因此需要您指定要编译的Handlebars变体。在您的情况下,因为您不想要Ember功能,所以您需要

Emblem.compile(Handlebars, source);

如果您需要Ember支持,则需要使用Ember.Handlebars变体

Emblem.compile(Ember.Handlebars, source);

我肯定会确保将这些内容添加到文档中。