2017-04-07 4 views
0

私は2つの形態を含む一つの形を持っていると私は必要とする2番目の形式は、このよう最初のフォームにその情報を表示するように更新されたとき:選択2オートフォームは、無限ループを作成し、それが反応しないのです

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)二番目の形式:私はこのヘルパーとメインフォームで選択されたこのロゴが表示されるはずですuploadLogoForm /でロゴをアップロードしてあれば

<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> 

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 
})); 
}}); 

これはquickfieldの種類は、「選択」しかし、私は「SELECT2」を使用するときに変なものの多くはヘルパーで無限ループのように発生し、select要素が空である場合とうまく動作します。私はそれを修正するために手動で要素またはファイルを選択する必要があります。

答えて

0

最後に問題が見つかりました。 Select2はattr(選択)を気にしません。値だけが重要です。

関連する問題