在underscore.js'的模板函数上下文中,interpolate是什么意思?
What does interpolate mean in the context of underscore.js's template function?
我试图理解下划线的模板方法的标记类型之间的差异。
特别是,除了html转义之外,我试图找出下划线<%- %>标记和<%= %>之间的区别。这两种类型之间还有其他区别吗?来自下划线的文档:
如果您希望插入一个值,并使用html转义,请使用<%-…%>
在这个上下文中插补是什么意思?
表示求值和填充。
假设你有
假设在你转换了model attributes to JSON
之后这是对象
{
title : 'Hello World',
escapeTitle : '<Hello World >'
};
如果你这样做
<%= {{title}} %> // Displayed as -- Hello World
<%= {{escapedTitle}} %> // Displayed as -- <Hello World>
但是如果你用这个
<%- {{escapedTitle}} %> // Displayed as -- <Hello World>
首先计算是否存在用户想要转义的字符然后填充
Underscore将改变<% %>声明中参数的值,例如<%-firstName %>为传递给模板的JSON的属性firstname的值。它的意思是用实际值替换变量声明。
interpolate表示对javascript表达式求值,并将结果值放入模板数据中。例如:
_.template('Hello, <%- name %>', {name: 'Tony'})
将返回Hello, Tony
。这是插值,而不是求值,在求值中,您可以为控制流或其他表达式编写表达式,其目的不仅仅是计算将成为模板输出字符串一部分的值。
相关文章:
- 将函数的上下文应用于javascript变量
- Twitter Bootstrap typeahead:使用“this”获取上下文/调用元素
- 使用JQuery的动态上下文菜单
- 如何访问UIWebView'的子窗口上下文
- JQuery在单击正文时隐藏上下文菜单
- JQuery上下文菜单显示/隐藏问题
- 如何从HTTP上下文对象中获取Post数据
- HTML字符串作为上下文
- 为什么我的上下文选择器和.buttonset()在ie中花费了这么长时间
- 丢失对象“;这个“;方法中的上下文
- 防止在移动Safari(iPad/iPhone)中长按/长按默认上下文菜单
- d3防止在上下文菜单上触发mouseout
- 是否可以在不更改上下文的情况下调用函数.apply
- 调用$.each()函数时上下文发生变化
- 何时可以;我的用户脚本在Javascript中触发右键单击(上下文菜单)
- 如何向onClick事件处理程序传递一个接受参数的函数,并且仍然将该函数绑定到组件's”;这个“;上下文
- Ember.js:将Em.$.getJSON转换为promise并将响应绑定到控制器上下文的正确方法
- File Upload事件上下文和javascript
- 使用JSTree上下文菜单捕获新创建的节点
- 访问函数对象的上下文属性|如何