我有一個lambda看起來像這樣一個鬍子模板:霍根並不支持拉姆達在預編譯模式
{{#myfunc}}myvalue{{/myfunc}}
它由hogan.js預編譯,看起來像這樣:
define(['hogan'],
function (Hogan) {
var template = new Hogan.Template(function (c, p, i) {
var _ = this;
_.b(i = i || "");
if (_.s(_.f("myfunc", c, p, 1), c, p, 0, 11, 18, "{{ }}")) {
_.rs(c, p, function (c, p, _) {
_.b("myvalue");
});
c.pop();
}
return _.fl();;
});
return function (context, partial, indent) {
return template.render(context, partial, indent);
};
});
我渲染使用Marionette.ItemView傳遞lambda函數到Backbone.Model這樣的模板:
myfunc: function (key) { console.log("key", key); }
的奇怪的事情:功能myfunc將被調用並登錄到控制檯,但它不被模板傳遞一個鍵。 我讀到Hogan在預編譯模式下不支持Lambda(大約一年前 - 我想這是固定的) - 但如果是這樣的話,myfunc會被調用嗎?
我把一些調試到我的供應商/ hogan.js庫 - 它看起來像霍根無法看到lambda標籤(這裏:myvalue)之間的值。
以前有人看過這個嗎?
您是否找到解決方案?我有類似的問題 – DonutReply 2015-01-07 16:43:15
不,只是避免了預先組合。 github上有一個補丁,但我沒有設法讓它運行。 – 2015-01-13 11:09:11