gpt4 book ai didi

javascript - 使用 requirejs 的句柄 block 辅助函数(在数组的每一行上添加简单的奇偶属性)

转载 作者:行者123 更新时间:2023-11-28 02:15:41 25 4
gpt4 key购买 nike

我在我的 requirejs 主干应用程序中包含了 handlebarjs,并且我想在模板上实现行类帮助器定义(奇数|偶数),

我正在尝试将 native Handlebars 助手“移植”到基于模块的(requirejs): http://blog.teamtreehouse.com/handlebars-js-part-2-partials-and-helpers

使用 requirejs 的 handlebarjs 插件: https://github.com/SlexAxton/require-handlebars-plugin

这是我迄今为止得到的oddevenhelper.js:

define(['handlebars'], function ( Handlebars ){
function oddevenhelper(array, even, odd, fn, elseFn) {
if (array && array.length > 0) {
var buffer = "";
for (var i = 0, j = array.length; i < j; i++) {
var item = array[i];

// we'll just put the appropriate stripe class name onto the item for now
item.stripeClass = (i % 2 == 0 ? even : odd);

// show the inside of the block
buffer += fn(item);
}

// return the finished buffer
return buffer;
} else {
return elseFn();
}
};

Handlebars.registerHelper( 'oddevenhelper', oddevenhelper );
return oddevenhelper;
});

这是我的示例模板:

<div class="orderssummary-list">
{{#oddevenhelper orderssummary "even" "odd"}}
<div class="ordersummary-list-item {{stripeClass}}">
<a class="addone"><i class="icon-chevron-up icon-white"></i></a>
<a class="minusone"><i class="icon-chevron-down icon-white"></i></a>
<div class="item-quantity">{{quantity}}x</div><div class="item-name">{{item_name}}</div> {{total}}
<div class="clearfix">
</div>
{{/oddevenhelper}}
</div>

助手运行,但 handle 抛出错误,我猜是在我在模板上声明为未定义或根本没有的第三个或第四个参数上。

我是否遗漏了一些东西?或者我只是让上下文(orderssummary)被重新定义以包含行类?

最佳答案

Hbs 助手的定义与常规 Handlebars 助手完全相同:它们接收选项哈希中的模板和反函数,而不是常规参数。你的函数应该是这样的

function oddevenhelper(array, even, odd, options)
var fn = options.fn,
elseFn = options.inverse;

...
}

和一把 fiddle http://jsfiddle.net/snZHu/

关于javascript - 使用 requirejs 的句柄 block 辅助函数(在数组的每一行上添加简单的奇偶属性),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16438460/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com