2015-12-16 4 views
0

Ниже представлена ​​моя вложенная схема. name.first не требуется. но когда я отправляю форму, которую она не проверяет, она допускает пустую строку. я что-то пропустил? или Как исправить эту проблему?meteor autoform требуется проверка не работает с вложенной схемой

Schema.UserProfile = new SimpleSchema({ 
     'name.first': { 
     type: String, 
     max: 50, 
     label: "First name" 
     }, 
     'name.last': { 
     type: String, 
     optional: true, 
     max: 50, 
     label: "Last name" 
     } 
    }); 

    Schema.User = new SimpleSchema({ 
    profile: { 
     type: Schema.UserProfile, 
     optional: true 
     }, 
    }); 

Meteor.users.attachSchema(Schema.User); 

форма:

{{#autoForm id="profile" type="method-update" meteormethod="updateProfile" schema=userSchema doc=currentUser collection=Users}} 
     {{> afQuickField name="profile.name.first" autofocus='' formgroup-class="col-xs-6"}} 
     {{> afQuickField name="profile.name.last" formgroup-class="col-xs-6"}} 
{{/autoForm}} 
+1

Ваша схема и форма выглядят правильно. Я копирую/вставляю его в небольшой проект и работает так, как ожидалось. При очистке поля firstname отображается сообщение «Имя требуется». Поле profile.name.first действительно пусто, вы проверяете его в mongoDB? И у вас есть templatehelper 'Users', который возвращает Meteor.users правильно? –

+0

Спасибо @JosHarink. Я ошибся в шаблоне 'Users'. СПАСИБО много –

+0

@JosHarink Вы пытались отправить без ввода каких-либо данных? –

ответ

0

Я проверил вашу схему Схема выглядит хорошо, но вы должны добавить объект для имени.

Schema.UserProfile = new SimpleSchema({ 
    'name': { 
    type: Object, 
    optional: false 
    }, 
    'name.first': { 
    type: String, 
    max: 50, 
    label: "First name" 
    }, 
    'name.last': { 
    type: String, 
    optional: true, 
    max: 50, 
    label: "Last name" 
    } 
}); 
Смежные вопросы