我想将真/假声明传递给我的把手
{{Gd-text-input label="Specify" name="Specify" key="entry.810220554" hideIf="entry.18110 === "Client""}}
如果变量entry.18110设置为“Client
,我希望hideIf为true答案 0 :(得分:1)
首先,将其添加到某处 -
Handlebars.registerHelper('ifEqual', function (var1, var2, options) {
if (var1=== var2) {
return new Handlebars.SafeString(options.fn(this));
}
return new Handlebars.SafeString(options.inverse(this));
});
然后..
{{#ifEqual entry.18110 "Client"}}
{{Gd-text-input label="Specify" name="Specify" key="entry.810220554" hideIf="true"}}
{{else}}
{{Gd-text-input label="Specify" name="Specify" key="entry.810220554" hideIf="false"}}
{{/if}}
这几乎是唯一的方法,因为车把团队特别将大部分逻辑排除在模板之外,因为它通常不属于那里。这是有争议的,因为有时它会使事情变得更复杂,不允许简单的逻辑。但是,这是非常可行的。
答案 1 :(得分:1)
另一个答案对于Ember Handlebars不起作用,对于你的情况,你可以做这样的事情。
http://emberjs.jsbin.com/agewuxAT/3/edit
组件
App.HideableCompComponent = Em.Component.extend({
isHidden: function(){
var prop = this.get('hideIfProperty');
if(!prop) return false;
// allow lazy comparison? up to you
return this.get('content').get(prop) == this.get('hideIfValue');
}.property('hideIfProperty', 'hideIfValue')
});
模板
<script type="text/x-handlebars" data-template-name="components/hideable-comp">
{{#unless isHidden}}
I am a component I am not hidden!
{{else}}
I am hidden
{{/unless}}
</script>
用法
{{hideable-comp content=model hideIfProperty='length' hideIfValue=3}}