Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Ember yield multiple actions into component

I have a checkout-form component which has some actions like next, previous, submitForm and selectDate. Currently I’m only able to yield the selectDate action like this:

{{!-- checkout-form.js --}}
<div class='checkout-form'>
  {{yield (action 'selectDate')}}
</div>

I’d like to be able to use my checkout-form component like this:

{{!-- order.hbs --}}
{{#checkout-form as |submitForm, selectDate|}} 
  {{checkout-field placeholder="Full Name" value=model.order.name}}
  {{!-- another field component that uses selectDate --}}
  {{checkout-form-actions action=submitForm}}
{{/checkout-form}}

How would I go about yielding multiple actions to be used inside of my checkout-form.hbs?

like image 385
gosseti Avatar asked Jul 17 '26 15:07

gosseti


1 Answers

option 1. You can pass many arguments like below

{{yield (action 'selectDate') (action 'submitForm')}}

Read - https://guides.emberjs.com/v2.14.0/components/block-params/

and

{{!-- order.hbs --}}
{{#checkout-form as |selectDate, submitForm|}} 
  {{checkout-form-actions action=selectDate}}
  {{checkout-form-actions action=submitForm}}
{{/checkout-form}}

option 2. You can also use hash helper,

{{yield (hash 
        selectDate=(action 'selectDate')
        submitForm=(action 'submitForm')) }}

and

{{#checkout-form as |options|}}   
  {{checkout-form-actions action=options.submitForm}}
{{/checkout-form}}
like image 196
Ember Freak Avatar answered Jul 20 '26 06:07

Ember Freak



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!