Установка флажка истинного или ложного значения от помощника в Meteor

Как я могу применить сохраненное истинное или ложное значение к проверенному атрибуту?

У меня есть ряд вопросов, на которые пользователь может включить / выключить (истина / ложь) в качестве ответа. Я создал объект с именем questions в профиле Meteor.user (). Имена полей - это вопросы, а сохраняемые значения - true или false.

введите описание изображения здесь

Теперь я хотел бы, чтобы атрибут для каждого поля отображал сохраненное значение, а не сбрасывал его до значения по умолчанию.

<template name="template">
 {{#with currentUser.profile.questions}}
 <div class="row">
 <input  data-name="profile.questions.school" type="checkbox"  name="questions" checked="{{school}}"> Go to School?
 </div>
 <div class="row">
 <input data-name="profile.questions.contributor" type="checkbox" name="questions" checked={{contributor}}"> contributor?
 </div>
 {{/with}}
</template>

Я делаю это долгим путем? Поможет ли в любом случае использование пробелов {{isChecked}}? https://www.discovermeteor.com/blog/spacebars-secrets-exploring-meteor-new-templating-engine/ Похоже, это просто для отображения флажка.


person meteorBuzz    schedule 30.12.2014    source источник
comment
В пробелах нет такой вещи, как isChecked. Однако использование <input type="checkbox" checked="{{value}}">, где value равно true или false, должно работать. См. github.com / метеор / метеор / вики /   -  person Peppe L-G    schedule 31.12.2014


Ответы (1)


Я обрабатываю флажки / радио следующим образом:

Template.myTemplate.helpers({
  isMyCheckboxChecked: function(value) {
    return (value == true ? 'checked' : '');
  }
});

Тогда в моем шаблоне я могу:

<input name="myCheckbox" type="checkbox" value="true" {{isMyCheckboxChecked myCheckboxValue}} />

Предполагается, что вы передаете значение, чтобы определить, нужно ли устанавливать флажок. Если ваши значения в значительной степени верны / ложны по всем направлениям, я бы даже подумал о том, чтобы сделать помощника "глобальным", используя Template.registerHelper. Код будет почти таким же, вы просто определите помощника немного по-другому. Это сделает его доступным во всех шаблонах.

person CodeChimp    schedule 31.12.2014
comment
Я пробовал это, получаю Uncaught Error: Expected valid attribute name, '', null, or object - person Nathan Hornby; 17.08.2015
comment
Попробуйте вернуть проверено = 'проверено', затем - person CodeChimp; 17.08.2015
comment
Я пошел другим путем и использовал checked={{ isChecked myVar }}. В любом случае код в вашем решении не работает как есть. - person Nathan Hornby; 18.08.2015
comment
Наряду с return (value == 'on' ? 'checked' : false);, кстати, может работать и пустой. - person Nathan Hornby; 18.08.2015