0

在我的骨干模型中,我有一个像这样的对象

 {
   lunsize: "big",
   type: {mike: "who", james: "him"}
}

当我这样做时,在我的模板中

<% _.each(type, function(sip) { %>
<%= sip %>

<% }); %>

我得到预期的结果是whoand him

想知道我将如何遍历整个模型本身而不仅仅是类型字段。

PS:我正在使用toJSON()将我的模型转换为 js 对象

4

1 回答 1

2

您可以通过variable. template这指示 underscore 创建一个函数,该函数需要一个给定名称的变量,而不是使用它的默认行为with来更改传递的数据对象的范围。

创建 Backbone 模板时,传递一个变量名:

_.template(yourTemplate, null, {variable: "data"});

然后,您可以通过模板中的该变量名称访问您的数据:

<% _.each(data, function (val, key) { %>
  ...
<% }); %>

由于with速度很慢,这具有更快渲染的额外优势。从下划线文档

默认情况下,模板通过 with 语句将数据中的值放在本地范围内。但是,您可以使用变量设置指定单个变量名称。这可以显着提高模板的渲染速度。

于 2013-10-27T14:18:53.080 回答