我正在使用下划线模板来创建一些标记。我正在使用no with方法,因此我定义了变量设置。
所以我的模板声明如下:
_.template('<div><%= data.title %></div>', { titles: title }, { variable: 'data'});
它工作正常并且评估模板很好,但是当我运行我的单元测试时,似乎我得到的错误数据是未定义的。
通过用this或self或obj替换数据,它似乎工作正常。我想知道是否有任何惩罚使用这样的话:
_.template('<div><%= this.title %></div>', { titles: title }, { variable: 'this'});
OR
_.template('<div><%= this.title %></div>', { titles: title }, { variable: 'obj'});
OR
_.template('<div><%= self.title %></div>', { titles: title }, { variable: 'self'});
感谢您的信息。
答案 0 :(得分:0)
你期待着&#39;头衔&#39;作为对象中的键,而对象包含的键是&#39; title&#39;。此外,您无需将第三个参数传递给_.template
。
由于_.template
返回一个函数,你可以通过传递它所需的对象来直接调用这个函数,如下所示:
<强> JavaScript的:强>
var temp = {"title": "Hello world!"};
/* Approach 1
var t = _.template('<div><%= title %></div>');
document.getElementById("output").innerHTML = t(temp);
*/
/* Approach 2 */
document.getElementById("output").innerHTML = _.template('<div><%= title %></div>', temp);