我正在查看使用Backbone.js
构建的应用的javascript代码我找到了一个功能
render: function () {
var that = this,
template = _.template($(that.templateId).html(), that.model.attributes);
}
此处 templateId:"#abc"
我只想了解_.template()函数的结构
任何人都可以帮助我理解以及如何将 that.model.attributes 作为输入
如果您需要更多信息,请原谅我。答案 0 :(得分:2)
正如手册所说:
模板
_。template(templateString,[data],[settings])
将JavaScript模板编译为可以评估的函数 渲染。
...您可以将数据对象作为第二个参数传递给模板,以便立即呈现而不是返回模板函数。
来源:http://underscorejs.org/#template
基本上,_.template()
采用DOM元素的html(模板脚本),在DOM中的某个地方定义了id = abc
。编译传递的数据that.model.attributes
并返回呈现的DOM部分并准备使用。
如果您没有传递第二个参数data
,那么您将获得一个模板函数,即:
var rendered = template({whatever: that.model.attributes});
that.model.attributes
所以this.model.attributes
所以(伪)thisview.model.attributes
是指绑定到此视图的模型。
无论如何,我建议你阅读