0

我正在阅读应用程序的源代码,我看到了这行代码:

 $('#div1').html(_.template($('#div2').html())({Id: app.Id(id)}));

$('#div1').html()我能看懂,但是为什么这行代码可以通过两个()代码块呢?它看起来不正确。.html() 可以占用两个 () 块吗?

.html(_.template()());

4

2 回答 2

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
于 2013-08-22T03:36:56.020 回答
0

这称为插值,正确的使用方法是

var template = _.template("Hello {{ name }}!");
template({name : "Mustache"});
=> "Hello Mustache!"

如同

var template = _.template("Hello {{ name }}!")({name : "Mustache"});
=> "Hello Mustache!"

http://underscorejs.org/#template

于 2013-08-22T03:36:20.660 回答