Emberで簡単なモーダルコンポーネントを構築しようとしていますが、ハンドルバーの「ロジックレス」は私にとって論理的すぎると思われます。これをやや結果を達成するための正しい方法はありますか?
<h2>Nice block about {{title}}</h2>
<a href="#" data-toggle="modal" id="add-item-{{title}}"> {{!this works}}
{{#my-modal modal-id="add-item-{{title}}" header='New {{title}}'}} {{! those don't}}
<p>My body blabla</p>
{{/my-modal}}
現在、モーダルIDは文字通り"add-item-{{title}}"
であり、モーダルタイトルも取得しています。
そして...いいえ、今のところ、「タイトル」を新しいパラメータとして渡し、それをモーダルで使用することを検討していません。別のテンプレートのモーダルヘッダーは「新しい{{title}}」ではなく、「よろしいですか?」または「{{title}}
に関する詳細」。
探しているのは concat helper です。それを使用すると、2番目の例は次のようになります。
{{#my-modal modal-id=(concat 'add-item-' title) header=(concat 'New ' title)}}
<p>My body blabla</p>
{{/my-modal}}
ここで、handlebars.jsでconcat
ヘルパーを探しました。同じものを探してここに着陸するのに役立つ場合、handlebars-helpersにはappend
ヘルパーが組み込まれています。
{{> my-modal modal-id=(append "add-item-" title) header=(append "New " title)}}
うん、タイトルを渡すことは私がそれを行う方法です。タイトルに何か追加する必要がある場合は、model.title
、それからコントローラーに計算されたプロパティを詰めます(es6文字列補間構文):
コントローラー
modalHeader: function() {
return `New ${this.get('model.title')}`;
}.property('model.title')
template
{{#my-modal header=modalHeader}}
<p>My body blabla</p>
{{/my-modal}}
Idについては、コンポーネントでいくつかの楽しいことを実行してオーバーライドできます。 this codepen を参照してください。とにかく、モーダルのIDを設定したいのはなぜですか?