1

有没有办法做这样的事情:

var html,
    templ = '<p>{{config.title}}</p>',
    data = {config: {title: 'some text'}};
html = Mustache.to_html(templ, data);
alert(html);

使用Mustache 库?或者也许与其他一些图书馆。

4

3 回答 3

1

使用小胡子上下文:

var html,
    templ = '<p>{{#config}}{{title}}{{/config}}</p>',
    data = {config: {title: 'some text'}};
html = Mustache.to_html(templ, data);
alert(html);

->'<p>some text</p>'

于 2011-04-09T23:03:34.750 回答
0

https://github.com/janl/mustache.js 用法

一个如何使用 mustache.js 的简单示例:

var view = {
  title: "Joe",
  calc: function() {
    return 2 + 4;
  }
}

var template = "{{title}} spends {{calc}}";

var html = Mustache.to_html(template, view);

模板是一个带有小胡子标签的简单字符串,视图是一个 JavaScript 对象,其中包含数据和用于呈现模板的任何代码。

于 2011-03-28T13:21:57.277 回答
0

安装小胡子使用 underscore.js:

_.templateSettings = { interpolate : /\{\{(.+?)\}\}/g };
var templateStructure = 'Hello {{ name }}!';
var template = _.template(templateStructure);
alert(template(yourObject));

请注意:您放入模板中的数据未转义。

还有一种想法:
如果您的 templateStructure 包含 'null' 您将收到错误消息。要使其工作,请执行以下操作:

var templateStructure = 'Hello {{ name }}! Did You know that "null" will provide an error?';
    templateStructure.replace(/null/g, 'NULL_REPLACEMENT');
var template = _.template(templateStructure);
var out = template(yourObject);
    out = template.replace(/NULL_REPLACEMENT/g, 'null');
alert(out);
于 2011-04-04T08:30:25.900 回答