我有一个表单,其中包含两个表单,我需要在更新第二个表单时以这种方式显示第一个表单中的信息:
1)主要形式:
{{#autoForm collection=company doc=company id='mainForm' type=formType}}
{{> uploadLogoForm }}
{{> afQuickField
name='company.logoUrl'
class='fu-select-tag--background-image'
label='Select a logo'
type='select'
options=logoOptions
template='plain'}}
{{/autoform}}
2)第二种形式:
<template name="uploadLogoForm">
{{#autoForm collection=collection id="newLogoForm" type="normal" class="fu-form-upload"}}
{{> afQuickField
name="_id"
accept=".png,.gif,.svg"
label="Upload a logo"
type="slingshot"
directive="logos"}}
{{/autoForm}}
</template>
因此,如果我在uploadLogoForm中上传徽标,则应使用此帮助在主窗体中显示/选择此徽标:
Template.mainForm.helpers({
logoOptions() {
const company = getCompany();
const logoUrls = [];
let currentLogoUrl;
if (company) {
currentLogoUrl = company.company.logoUrl;
}
const uploadedLogo = AutoForm.getFieldValue('_id', 'newLogoForm');
if (uploadedLogo) {
currentLogoUrl = getPath(uploadedLogo);
}
if (currentLogoUrl) {
logoUrls.push(currentLogoUrl);
}
if (FlowRouter.subsReady('logos')) {
Logo.find({}, {sort: {_id: 1}}).forEach(logo => {
const logoUrl = getPath(logo._id);
if (!_.include(logoUrls, logoUrl)) {
logoUrls.push(logoUrl);
}
});
}
return logoUrls.map(logoUrl => ({
label: logoUrl,
value: logoUrl,
selected: logoUrl === currentLogoUrl ? true : null
}));
}});
如果快捷方式的类型是'select',这很好用。但是当我使用'select2'时,许多奇怪的事情发生在帮助器中的无限循环中,而select元素是空的。我必须手动选择元素或文件才能修复它。
答案 0 :(得分:0)
最后我们可以找到问题。 Select2不关心attr(选中)只有值很重要。