我正在阅读应用程序的源代码,我看到了这行代码:
$('#div1').html(_.template($('#div2').html())({Id: app.Id(id)}));
我可以理解$('#div1')。html(),但为什么这行代码可以传递两个()代码块?看起来不对劲。 .html()可以带两个()块吗?
.html(_.template()())
;
答案 0 :(得分:3)
这是因为_.template()
返回一个函数然后我们用第二组()
var fn = _.template(sometemplate);//it gives a parsed template which is a function
fn(data);//it merges the data and the template to generate the html
答案 1 :(得分:0)
这称为插值,使用它的正确方法就像
var template = _.template("Hello {{ name }}!");
template({name : "Mustache"});
=> "Hello Mustache!"
与
相同var template = _.template("Hello {{ name }}!")({name : "Mustache"});
=> "Hello Mustache!"