【发布时间】:2016-06-05 05:26:03
【问题描述】:
我有以下场景
{{#each (concatArray setra.features lion.features)}}
<tr>
<td><h4 class="ui header">{{this}}</h4></td>
<td>{{#if contains ../setra.features this}}YES{{/if}}</td>
<td>{{#if contains ../lion.features this}}YES{{/if}}</td>
</tr>
{{/each}}
其中concatArray 是一个辅助函数,它返回一个字符串数组,该数组是所有特征的串联。
我该如何正确写出上面的语句?
从每个子句中,我可以通过转义每个上下文来访问 setra.features 和 lion.features:
{{#each (concatArray setra.features lion.features)}}
{{../setra.features}} <!-- is accessible -->
{{/each}}
但是一旦我想在我的辅助函数contains 中使用任何一个作为参数,它会给我带来错误,具体取决于我尝试实现它的方式。上面的示例目前给我一个“无法读取未定义的属性 'includeZero'”错误,这似乎很可能是因为路径没有正确评估。
辅助函数如下:
var contains = function(array, string){
if(array && array.indexOf(string) > -1){ return true; }
return false;
}
exports.contains = contains;
var concatArray = function(array1, array2){
var newArray = array1;
array2.forEach(function(element){
if(newArray.indexOf(element) < 0){
newArray.push(element);
}
});
return newArray;
}
exports.concatArray = concatArray;
【问题讨论】:
标签: templates nested handlebars.js helpers