如何评估空格键参数中的任意表达式?
How do I evaluate arbitrary expressions in a spacebars argument?
我想说 {{#if tiny || huge}}
之类的话,但看起来空格键只需要一个 truthy 函数。什么是最好的解决方案?
我想我会再写一个助手,但我如何从另一个助手的代码中调用一个助手?例如
Template.foo.helpers({ tiny: function() { return this < 10 },
huge: function() { return this > 1000 },
tinyOrHuge: function() { return tiny() || huge() } // bzzt!
})
我不想通过复制 tiny
和 huge
来重写 tinyOrHuge
。那不是很干。
是否有编程方式可以按名称访问辅助函数?如果您传入名称,helpers
返回帮助器,那就太好了。例如。我可以打电话给 Template.foo.helpers('tiny')()
。但是我已经查看了这些 Blaze.Template 对象,但没有找到一种方法可以在不访问私有变量的情况下恢复函数,例如Template.foo.__helpers.get('tiny')
.
这是一个在保留必要上下文的同时重用辅助函数的示例:
var tiny = function() {
return this < 10;
};
var huge = function() {
return this > 1000;
};
Template.foo.helpers({
tiny: tiny,
huge: huge,
tinyOrHuge: function() {
return tiny.call(this) || huge.call(this);
}
});
我想说 {{#if tiny || huge}}
之类的话,但看起来空格键只需要一个 truthy 函数。什么是最好的解决方案?
我想我会再写一个助手,但我如何从另一个助手的代码中调用一个助手?例如
Template.foo.helpers({ tiny: function() { return this < 10 },
huge: function() { return this > 1000 },
tinyOrHuge: function() { return tiny() || huge() } // bzzt!
})
我不想通过复制 tiny
和 huge
来重写 tinyOrHuge
。那不是很干。
是否有编程方式可以按名称访问辅助函数?如果您传入名称,helpers
返回帮助器,那就太好了。例如。我可以打电话给 Template.foo.helpers('tiny')()
。但是我已经查看了这些 Blaze.Template 对象,但没有找到一种方法可以在不访问私有变量的情况下恢复函数,例如Template.foo.__helpers.get('tiny')
.
这是一个在保留必要上下文的同时重用辅助函数的示例:
var tiny = function() {
return this < 10;
};
var huge = function() {
return this > 1000;
};
Template.foo.helpers({
tiny: tiny,
huge: huge,
tinyOrHuge: function() {
return tiny.call(this) || huge.call(this);
}
});