开发者学堂课程【Node.js 入门与实战:Underscore 使用02】学习笔记,与课程紧密联系,让用户快速学习知识
课程地址:https://developer.aliyun.com/learning/course/588/detail/8286
Underscore使用02
目录:
一、Template简介
二、应用
一、Template简介
将JavaScnpt模板编译为可以用于页面呈现的函数,对于通过JSON数据源生成复杂的HTML并呈现出来的操作非常有用。
模板函数可使用<%=...%>插入变量也可以用<%-%>执行任意的JavaScript代码,如果您希望插入一个值并让其进行HTML转义。请使用<%=...%>。
当你要给模板函数赋值的时候,可以传递一个含有与模板对应属性的data对象。
如果您要写一个一次性的,您可以传对象data作为第二个参数给模板 template 来直接呈现,这样页面会立即呈现而不是返回一个模板函数参数settings是一个哈希表包含任何可以覆盖的设置_.templateSettings.
它有两个字符串(templateString,[settings]),这个字符串中包含了模板的语法,它可以编译返回一个函数,对模板语法进行替换,生成替换后的结果。
二、范例:观察传统回收
v
ar
c
o
mpiled
=
templat
e_(
“
hello
:<%=
name
%
");
comp
iled(
{
name:
‘
moe
’
}
)
;
=>“
hello : moe”
v
ar te
m
plate
=
_
.
template(”<b><
%-
value
%
>
<
/b>");
template (
{
value:
‘
<s
cript>
’
}
);
=>
“<b>
&l
t;script
>
;
<
/b>"
// de
mo2
:
var_ =
require(
‘
Unders
c
ore
’
)
;
//声明了一段代码模板代码的HTML文档
var html
=
‘
<h2><%=
name
%
>
<
/h2>";
// teplate ()函数的返回依然是一个函数
Var fn = _.template(html);
// 调用 template()返回的这个函数 fn
//fn 接受一个数据对象,并用该数据对象,将html中的模板内容替换,生成最终的HTML代码。
var html = fn({name:
“达达”});
console.log(htm1);
console.log(fn.toString()
)
;
function (data)
{
return render.call(this,data,_);
}
fn动态生成的函数的源代码,需要去找,找到源代码就能知道render函数内部。