Как сделать одно поле зависимым от значения другого поля в автоформе метеора?

я новичок в метеоре и хочу создать форму, в которой значение одного поля определяет значение другого поля в автоформе. Возьмем типы установки «A», «B» и «C», поэтому, когда я выберу «A», будет загружена автоформа. Я сделал эту форму универсальной, т.е. она будет отображаться для всех A, B и C.

{{#each users}}
        {{> afQuickField name='userEmail' value=userEmail readOnly=true }}
        {{> afQuickField name='Setup' value=type readOnly=true}}  
        {{> afQuickField name='Profile' options='allowed' }}
        {{> afQuickField name='Purpose' }}
        {{> afQuickField name='count' options='allowed' }}
        {{> afQuickField name='PackageDirectory' options='allowed'  }}
        {{> afQuickField name="logName" options=LogName }}
 {{/each}}

Варианты подсчета должны быть следующими:
1. Для "A" количество вариантов должно быть 9,11,12.
2. Для "B" это 1.
3. Для "C" это 5.< br> В схеме я написал такой код

Setup:{
        type: String,
        label:"Setup",
        optional:false,
       defaultValue:type
      },
 count:{
        type: String,
        label:"No. Of count",
         optional: true,
        allowedValues:["9","11","12"],
        autoform:{
          afFieldInput:{
            firstOption:"(Select the count)"
          }
        }
  }

Поэтому, когда я выбираю настройку «A», я должен получить три раскрывающихся параметра, а когда я нажимаю «B» и «C», я должен получить значение по умолчанию как 1 и 5 соответственно. Кто-нибудь может дать решение моей проблемы?


person Snkini    schedule 05.11.2017    source источник


Ответы (1)


Вы можете использовать getFieldValue для получения определенного значения поля и на его основе возвращать набор option или defaultValue из помощника шаблона. Документация находится здесь

Итак, в соответствии с вашим кодом:

form.html:

    ...
{{#autoForm id="sampleFormID" ... ... }}
    {{> afQuickField name='Setup' value=type readOnly=true}}  
     {{> afQuickField name='count' options=allowedOptionHelper defaultValue=defaultValueHelper }}
    ...

{{/autoForm}}

form.js

Template.templateName.helpers({

    allowedOptionsHelper: function() {
        if (AutoForm.getFieldValue('Setup', 'sampleFormID') === 'A') {
            return [{label:"9", value:"9"},{label:"11",value:"11"},{label:"12", value:"12"}];
            else
            if (AutoForm.getFieldValue('Setup', 'sampleFormID') === 'B') {
                // return the options for B
            } else if (AutoForm.getFieldValue('Setup', 'sampleFormID') === 'C')) {
            // return the options for C
        }
    },

    defaultValueHelper: function() {
        if (AutoForm.getFieldValue('Setup', 'sampleFormID') === 'A') {
            return 11 //or whatever the defaultValue is;
        }
        //likewise for options B and C
    }

});

схема.js

...
...
 count:{
        type: String,
        label:"No. Of count",
         optional: true,
        autoform:{
          afFieldInput:{
            firstOption:"(Select the count)"
          }
        }
  }
...
...
person blueren    schedule 05.11.2017
comment
Я изменил код, как вы предложили, но когда я выбираю настройку как A, я не получаю раскрывающийся список в поле счетчика. - person Snkini; 06.11.2017
comment
Вы не видите само раскрывающееся поле? или вы не видите выпадающих значений. Если это последнее, вероятно, что-то, что нужно сделать с типом возвращаемого значения. Можете ли вы вставить операторы console.log перед операторами return, чтобы увидеть, действительно ли он что-то возвращает. Кроме того, я только что заметил несоответствие типов, которое я сделал с типом схемы count. Я исправил это. - person blueren; 06.11.2017
comment
Я не вижу ни значений, ни раскрывающегося списка, я проверил возвращаемое значение, насколько я понял, то, что вы упомянули, верно. Но в данном случае это не работает. Значения по умолчанию устанавливаются в поле счетчика. - person Snkini; 06.11.2017
comment
Вы приняли этот ответ. Я так понимаю, вы поняли, как заставить его работать? Что было сделано? - person blueren; 07.11.2017
comment
Да, я принял этот ответ, но я все еще не заработал. может, пожалуйста, помогите мне заставить его работать? Я упомянул проблему в предыдущих комментариях. Я пробовал все комбинации для возвращаемых значений. но выпадающий вариант для счета A не появляется. Но установлены значения по умолчанию. - person Snkini; 07.11.2017
comment
Загрузите свой шаблон, помощник и схему куда-нибудь и дайте ссылку сюда. Давайте поговорим, когда это возможно - person blueren; 07.11.2017