2015-03-24 3 views
2

В моем коде есть булевский флажок. что мое восприятие заключается в проверке, оно должно вернуть его значение как истинное, а при необузданном - вернуть его значение как ложное. Но я столкнулся другая ситуация, которая выглядит следующим образом:MeteorJs aldeed-autoform, Как получить желаемое значение из булеанского флажка.

На начальной загрузке страницы, он показывает сообщение: «Не выбрано» Когда я делаю галочкой, он показывает мне значение: «истина» Когда я снимите checkbox, он придерживается, чтобы показать мне значение: «true» Поэтому он всегда показывает мне значение «true», даже сколько раз я делаю его проверенным или непроверенным.

Может кто-то наставит меня в чем проблема и как это можно исправить, чтобы получить желаемый результат:

Вот AutoForm HTML код:

{{#autoForm collection='Collections.Category' validation='submit' id='CategoryInsertForm' class="form-horizontal form-with-legend" role="form" type='method' meteormethod='CategoryInsertMethod' }} 

{{ currentFieldValue 'isParent' }} 

{{> afFormGroup name='isParent' id='isParent' type="boolean-checkbox"}} 

{{#if afFieldValueIs name="isParent" value= 'true'}} 
{{> afFieldInput name='parentId' id='parentId' class='form-control'}} 
{{/if}} 
{{/autoForm}} 

Здесь JS код:

Template.registerHelper("currentFieldValue", function (fieldName) { 
    return AutoForm.getFieldValue(fieldName) || "not selected"; 
}); 

Проверочный код:

Collections.Category = new Mongo.Collection('category'); 

Schemas.Category = new SimpleSchema({ 

    catId:{ 
     type: String, 
     optional: true, 
     unique: true 
    }, 
    isParent: { 
     type: Boolean, 
     optional: true, 
     defaultValue: false, 
     // ,allowedValues: [true, false] 
     label: "Parent category" 

    }, 
    parentId: { 
     type: String, 
     label: "ParentID", 
     optional: true 

    }, 
    title: { 
     type: String, 
     optional:true 
    } 

}); 

Collections.Category.attachSchema(Schemas.Category); 

ответ

1

Я работал вокруг этого путем создания помощника, как это:

Template.myTemplate.events({ 
'change .myCheckboxClass': function(event) { 
    clickedElement = event.target; 
    clickedElement.value = !clickedElement.checked; 
} 
}); 
0

В настоящее время я использую следующие настройки для аналогичной задачи:

шаблона:

<template name='test'> 
{{autoFormTest}} 
{{> quickForm collection="Sample" id="sampleForm" type="update" doc=this}} 
</template> 

JS:

Template.test.helpers({ 
    autoFormTest: function(){ 
     return AutoForm.getFieldValue("radiobuttonField", "sampleForm").toString(); 
    } 
}) 

Соответствие деталям для обозначения:

radiobuttonField: { 
    optional: true, 
    type: Boolean, 
    label: "Is it true?", 
    autoform: { 
     type: "boolean-radios", 
     trueLabel: "Yes", 
     falseLabel: "No " 
    } 
} 

Помощник будет возвращать false или true строку, но по умолчанию в false. Таким образом, есть две важные части, относящиеся к данному вопросу:

  1. вы должны указать имя формы в вашем помощнике AutoForm.getFieldValue(..., "sampleForm")

  2. , если вы хотите, чтобы вернуть значение строки (которые могут быть выписаны) из булевой селекторе вы должны преобразовать его в строку AutoForm.getFieldValue(...).toString()

Надежда, что помогает.

Смежные вопросы