0

我正在使用通过组合backbone.js 和underscore.js 来创建html 位的常规方式。这是我使用的一个例子

_.template($('#html-container').html(), this.model.toJSON());

我把它附加到我需要的地方。这种情况下的模型是一个普通的主干模型。

现在输出的 HTML 如下所示:

<li _id="4f82f7c3c5de997ad3fd4989" code="61131" unit="100ml" op="11" rp="22" cp="0" id="4f82f7c3c5de997ad3fd4989">

基本上它为我的模型中的每个变量创建了一个 html 属性。这是正常的还是我在这里做错了什么。

4

1 回答 1

0

在某个地方你应该有这样的一行。

var sometemplate = _.template($('#html-container').html());

这会将您的模板编译成一个函数,您可以传递模型数据并生成 html,如下所示:

var html =  sometemplate(this.model.toJSON());

您试图在一行上完成所有操作.. 您可以这样做(虽然不是这种方式),但最好编译一次模板,在某处保存对该模板的引用并稍后引用它。

另请参阅http://documentcloud.github.com/underscore/#template

编辑:现在我确实看到了,我明白了

如果您正在编写一次性,您可以将数据对象作为第二个参数传递给模板,以便立即呈现而不是返回模板函数。

所以没关系。因此,也许您在生成 JSONable 对象时包含不止一个延迟数据(我的意思是,您的对象中有一个对象或其他东西),或者......

于 2012-04-19T23:55:46.563 回答