2

数値を受け取ってクラス名を返す Handlebars ヘルパーがあります。foobar存在しない可能性があるため、存在する場合にのみヘルパーを実行したい。私の最初の試みは:

{{#each content}}
    <div class="other_class {{#if foobar}}{{my_helper foobar}}{{/if}}"></div>
{{/each}}

ifmetamorph はスクリプト タグのプレースホルダーをヘルパーがある場所に挿入するため、これは機能しません。私の2番目の試みは:

{{#each content}}
    <div class="other_class {{my_helper foobar}}"></div>
{{/each}}

foob​​ar が存在しない場合、文字列"foobar"が に渡されるため、これも機能しませんmy_helper

{{unbound foobar}}これを行うと、バインドせずに値がレンダリングされるため、スクリプトタグのプレースホルダーがなくなることを知っています。ifバインドされていない方法で使用する方法はありますか?

4

2 に答える 2

2

計算されたプロパティを作成しclassNameBindingsてビューに追加できます。 http://jsfiddle.net/pangratz666/MvpUZ/を参照してください。

App.MyView = Ember.View.extend({
    classNameBindings: 'omg'.w(),

    omg: function(){
        var foobar = Ember.getPath(this, 'content.foobar');
        return (foobar && foobar === 42) ? 'my-class-name' : null;
    }.property('content.foobar')
});
于 2012-04-25T10:01:33.487 に答える