Я травля SO вопросов для ответа на что-то, что должно быть очень просто, но для жизни меня я не могу понять.Meteor-AutoForm: как обновить опцию выбора на основе другого элемента управления
В принципе у меня есть метеоритный-AUTOFORM с двумя отборных управления:
<template name="processFormTemplate">
{{#autoForm id="processForm" collection="Processes" type=formAction doc=doc validation="blur"}}
<div class="col-md-12">
{{> afQuickField name="elementId" options=elements}}
{{> afQuickField name="categoryId" options=categories}}
{{> afQuickField name="title"}}
{{> afQuickField name="desc" rows=4}}
</div>
{{>formButtons}}
{{/autoForm}}
</template>
Это то есть помощники, чтобы заполнить параметры:
Template.processFormTemplate.helpers({
elements: function() {
return getFormElements();
},
categories: function(elementId) {
return getFormCategories(this.doc.elementId);
}
});
Lib/methods.js
getFormElements = function() {
var options = [];
Elements.find({}, {sort: {ref:1}}).forEach(function (element) {
options.push({
label: element.title, value: element._id
});
});
return options;
};
getFormCategories = function(elementId) {
var options = [];
var filter = {};
if (!isBlank(elementId)) {
filter.elementId = elementId;
}
Categories.find(filter, {sort: {ref:1}}).forEach(function (d) {
options.push({
label: d.title, value: d._id
});
});
return options;
};
Теперь я знаю, что это не работает, потому что помощник не реагирует, однако я не знаю, как изменить это поведение р. Я также попытался закреплять в «изменение» событие, но это никогда не сработает по какой-то причине:
Template.processFormTemplate.events({
'change #elementId': function(e) {
console.log($('[name="elementId"]').val() + ' is now selected');
}
});
Требуемое поведение является то, что, когда новый elementId выбран в первом списке, список опций в секунду должен быть обновлен на основе выбранного элемента.
Любая помощь очень ценится.
Спасибо, Дэвид
Это решение работает отлично подходит для меня. Благодаря! – Aaron
привет - спасибо за ответ ... как бы вы использовали свое решение в нескольких формах, требующих такого же поведения? – dsc
@Woppi Любопытно, почему у вас есть (Meteor.isClient()) в вашей функции автоформата области ...? – Wes