我使用把手。我注册了一个调用函数的助手。
Handlebars.registerHelper("getContactCategoryById", getContactCategoryById);
功能
function getContactCategoryById(categoryId) {
var category = sessionStorage.getItem("category");
$.each(jQuery.parseJSON(category), function () {
if (this.contactCategoryId == categoryId) {
return this.name;
}
});
}
在我的模板中,我的函数被调用,当我调试时,getContactCategoryById返回一个值,但它从未显示在表中。 我可以看到当我看到html代码时,contact-category-id有一个data-contact-category-id标记的值。
<script id="lodger-contact-available-result-template" type="text/x-handlebars-template">
<table id="lodgerContactAvailableTableResult" style="min-height:200" data-show-header="true" class="table table-striped" data-toggle="table" data-height="330">
<thead>
<tr>
<th>Category</th>
</tr>
</thead>
<tbody>
{{#each this}}
<tr>
<td data-contact-category-id={{contactCategoryId}}>{{getContactCategoryById contactCategoryId}}</td>
</tr>
{{/each}}
</tbody>
</table
</script>
编辑:解决方案,需要做一个返回存在的每个并获取值
function getContactCategoryById(categoryId) {
var category = sessionStorage.getItem("category");
var toReturn;
$.each(jQuery.parseJSON(category), function () {
console.log(this.contactCategoryId, categoryId);
if (this.contactCategoryId == categoryId) {
toReturn = this.name;
return false;
}
});
return toReturn;
}
答案 0 :(得分:2)
问题是你从jQuery.each
返回,而jQuery.each
本身就是一个函数,所以你的返回值被getContactCategoryById
吞没了,你的助手函数undefined
最终没有返回任何东西(或者总是准确地返回function getContactCategoryById(categoryId) {
var category = sessionStorage.getItem("category");
var foundName = '';
$.each(jQuery.parseJSON(category), function () {
if (this.contactCategoryId == categoryId) {
foundName = this.name;
return false; // returning false in jQuery.each stops the iteration
}
});
return foundName; // return the name you found
}
。)
您需要做的是在找到所需内容后停止循环,然后返回循环结束后找到的内容:
DECLARE
p_headers my_pkg.tab_headers;
p_my_file1 BLOB := EMPTY_BLOB();
p_my_file2 BLOB := EMPTY_BLOB();
BEGIN
p_headers := my_pkg.tab_headers();
/* Process that fills p_my_file1 and p_my_file2 */
p_headers.EXTEND;
p_headers(1).file1 := p_my_file1;
p_headers(1).file2 := p_my_file2;
END;
/