【发布时间】:2015-10-27 08:23:59
【问题描述】:
我正在使用带有 Handlebars 模板的 Ember
如何在 Handlebars 中获得以下支持?
{{#if response.someCount> 0}}
我是否必须在 Controller 中添加一些映射属性来实现这一点?
【问题讨论】:
标签: javascript ember.js handlebars.js
我正在使用带有 Handlebars 模板的 Ember
如何在 Handlebars 中获得以下支持?
{{#if response.someCount> 0}}
我是否必须在 Controller 中添加一些映射属性来实现这一点?
【问题讨论】:
标签: javascript ember.js handlebars.js
你需要帮助,例如:
Handlebars.registerHelper('compare', function (lvalue, rvalue, options) {
if (arguments.length < 3)
throw new Error("Handlerbars Helper 'compare' needs 2 parameters");
operator = options.hash.operator || "==";
var operators = {
'==': function (l, r) {
return l == r;
},
'===': function (l, r) {
return l === r;
},
'!=': function (l, r) {
return l != r;
},
'<': function (l, r) {
return l < r;
},
'>': function (l, r) {
return l > r;
},
'<=': function (l, r) {
return l <= r;
},
'>=': function (l, r) {
return l >= r;
},
'typeof': function (l, r) {
return typeof l == r;
}
}
if (!operators[operator])
throw new Error("Handlerbars Helper 'compare' doesn't know the operator " + operator);
var result = operators[operator](lvalue, rvalue);
if (result) {
return options.fn(this);
} else {
return options.inverse(this);
}
});
然后在你的模板中:
{{#compare response.someCount 0 operator = ">"}}
// Some code...
{{/compare}}
抱歉,我不记得我从哪里下载了该代码,但它在一个项目中完美运行了一年多。
【讨论】:
ember install ember-truth-helpers安装它就可以使用了。
Handlebars.registerHelper 已被弃用,请改用Ember.Helper。