【发布时间】:2014-06-30 00:36:42
【问题描述】:
我试图创建一个助手,让我可以将助手链接在一起,例如:
{{ chain "striptags" "<p>asdf</p>" "truncate" 2 }}
但似乎不是在 Ember 中调用助手后返回值,而是最后一个 arg 有一个渲染缓冲区,由 ember 助手操作。有没有办法获取普通的 ember 车把助手并返回值?我的参考代码:
/**
* Allows some basic chaining of helpers.
* {{ chain "helper1" arg1 arg2 "helper2" arg2 }}
*/
Ember.Handlebars.helper('chain', function() {
var helperArgs = [];
var helper;
var that = this;
var options = arguments[arguments.length - 1];
$.each(arguments, function(i, arg) {
if(Ember.Handlebars.helpers[arg]){
if(helper){
helperArgs.push(options);
helperArgs = [helper.apply(that, helperArgs)];
}
helper = Ember.Handlebars.helpers[arg];
}else{
helperArgs.push(arg);
}
});
return helper.apply(that, helperArgs);
});
【问题讨论】: