Emberのハンドルバーヘルパーは、Ember.Handlebars.helpers
に配置されています。 Ember.Handlebars.helpers.{helperName}.call
でそれらを呼び出すことができます。
ただし、上記は動的な部分/ビュースタイルのヘルパーのようです。私はハンドルバーヘルパーを作成することをお勧めします。構文は似ていますが、Viewクラスをhelper
に渡します。対応するビューのようなものだろうtemplateName
App.SideMenuLinksView = Ember.View.extend({
templateName: 'sideMenuLinksTemplate'
});
あなたのテンプレートを与えることによって、あなたに似たテンプレートを使用することができます
Ember.Handlebars.helper('sideMenuLinks', App.SideMenuLinksView);
、
<script type='text/x-handlebars' data-template-name='sideMenuLinksTemplate'>
{{#each link in view.links}}
<li class="navigation page">
{{#linkFor parentView.routeVariable link.linkToRouteContext}}
{{{link.iconTag}}}<i class="icon-right-open"></i>{{link.linkText}}</a>
{{/linkFor}}
</li>
{{/each}}
</script>
デフォルトエンバーlinkTo
はでは、静的です変数から名前付きルートを渡すことはできません。 linkTo
を内部的に適用する前に、変数パスを検索するlinkFor
のような動的なlinkTo
ヘルパーが必要です。
Ember.Handlebars.registerHelper('linkFor', function(path, params, options) {
var view = options.data.view;
var name = view.get(path);
var args = [name, params, options];
return Ember.Handlebars.helpers.linkTo.apply(this, args);
});
最後に、このヘルパーを以下のように使用できます。 links
プロパティは、この例のコントローラーのcontent
にバインドされます。
<script type='text/x-handlebars' data-template-name='application'>
{{sideMenuLinks links=content routeVariable='page'}}
</script>
ここには、作業中のjsbinがあります。
明らかに、これはもううまくいかず、ember-cliを使用して成功しようとしました。 –
成功しましたか?私は同じ問題に遭遇した。 – julkiewicz