检索车把中的专用阵列数据.js模板
Retrieving Private Array Data in Handlebars.js Template
给定这个普通的JavaScript结构:
var MyObject = function() {
var privateArray = [
{ name: 'one' },
{ name: 'two' }
];
this.returnPrivate = function(index) {
return privateArray[index];
};
};
var obj = new MyObject();
在车把模板中,我希望能够使用 returnPrivate
函数在privateArray
的特定索引处打印对象的 name
属性。
// This of course does not work.
<p>{{returnPrivate(1).name}}</p>
我刚刚开始使用车把.js,所以可能已经有一种标准的方法可以做到这一点。 或者这可能是试图在模板中构建太多逻辑,并违背车把的全部内容。
我想出了一个助手来做我需要它的事情,但我非常感谢一些关于这是否是解决此类车把问题的最佳方法的反馈。
/**
* Given the name of a function that returns an array value, this helper
* returns the value at a given index. Optionally it takes a property name
* in case the array value at the given index is itself an object.
*/
Handlebars.registerHelper('eqf', function(func, index, prop) {
if (typeof prop === 'string') {
return func(index)[prop];
} else {
return func(index);
}
});
问题示例的用法:
<p>{{eqf returnPrivate 1 "name"}}</p>
Handlebars 具有用于处理数字或符号标识符的特殊语法,如此处所述。 如果能够将数组索引作为文本传递,则可以使用以下命令:
{{privateArray.[1].name}}
仅当您重构对象以使privateArray
可用于模板时,这才有效。 如果确实要隐藏privateArray
并强制模板使用函数调用,则必须使用帮助程序。
相关文章:
- 计算数据点阵列与平均值的最大距离,并返回相关数据点
- 将用户选择的数据临时存储在我的阵列中
- 在阵列中推送数据-角度/离子
- 如何根据另一个节点中的数据对 Firebase 阵列进行排序
- 带多维数组返回字符串的json_encode;阵列”;而不是数据
- 聚合物动态变化数据阵列
- 阵列在拼接后不会改变它的数据.范围问题
- 检索车把中的专用阵列数据.js模板
- 将数据推送到阵列,然后迭代
- 聚合物 1.x:数据绑定阵列
- 如何获取本地存储阵列数据
- 使用角度显示阵列中的数据
- 获取此阵列模型的配对数据的最佳方式是什么
- 将数据预处理为硬编码阵列
- 在确认框中显示带有阵列数据的消息
- 使用TD标签中的数据创建阵列
- 聚合物中数据绑定到阵列
- 阵列数据格式redis pub子通道
- 阵列数据存储到localStorage在InternetExplorer中不起作用,但在chrome中可以正常工作
- 渲染阵列数据