2015-04-17 5 views
5

Ho una casella di controllo che deve mostrare/nascondere un'altra casella di input. Sto facendo il seguente:L'autoforma di Meteor "afFieldValueIs" con una casella di controllo booleana si attiva solo una volta

schema:

isFlexibleTime: 
    type: Boolean 
    label: 'Is the start time flexible?' 
flexibleTimeDetails: 
    type: String 
    label: 'Flexible time details' 
    optional: true 

Template:

+afQuickField(name='isFlexibleTime') 

if afFieldValueIs name='isFlexibleTime' value=true 
    +afQuickField(name='flexibleTimeDetails') 

L'helper attiverà una sola volta e mostrare l'altro campo, ma non si innescherà di nuovo. Qualsiasi aiuto in ciò che è sbagliato sarebbe molto apprezzato.

risposta

3

EDIT

In realtà su un'ulteriore ispezione sembra che ci sia attualmente un bug con l'evento casella di controllo a partire dal AutoForm 5.1.2 https://github.com/aldeed/meteor-autoform/issues/861

La questione è stata aperta un po 'di tempo, in modo da poter utilizzare una rapida soluzione come:

Nel vostro evento modello:

'click [name=isFlexibleTime]': function() { 
    Session.set('isFlexibleTime', AutoForm.getFieldValue('isFlexibleTime','ID_OF_YOUR_AUTOFORM')); 
} 

template aiutante:

isChecked: function() { 
      return Session.get('isFlexibleTime'); 
} 

poi:

{{#if isChecked}} 
     {{> afQuickField name="flexibleTimeDetails"}} 
{{/if}} 

non sono sicuro se questo è la sintassi reale, ma seguendo l'esempio da: http://autoform.meteor.com/fieldvalues dovrebbe assomigliare a questo:

{{> afQuickField name="isFlexibleTime"}} 
{{#if afFieldValueIs name="isFlexibleTime" value="true"}} 
     {{> afQuickField name="flexibleTimeDetails"}} 
{{/if}} 
+1

Grazie a ton @ Jon. È bello saperlo. Mi limiterò a monitorare quel PR e a tirare la correzione una volta che è stata unita. – sturoid