2015-02-02 3 views
2

Можем ли мы получить полный пример формы контакта для новичков Meteor?Meteor.js + autoform пример рабочего контакта

Этап до сих пор.

  • Создание схемы
  • Показать контактную форму в шаблоне
  • убедитесь, что значения передаются с помощью метода
  • Добавить требуемые пакеты
  • Создание помощника для клиентской стороне
  • Создайте метод для серверной части (Отправляет электронное письмо)
  • Показать сообщение об успехе

Работа с информацией о https://github.com/aldeed/meteor-autoform#an-example-contact-form

ответ

5

enter image description here

и/коллекции/contact.coffee

@Contacts = new Meteor.Collection('contacts') 

Schemas.Contacts = new SimpleSchema 
    name: 
    type: String 
    label: "Your name" 
    max: 50 
    optional: true 
    autoform: 
     placeholder: "John Doe" 

    email: 
    type: String 
    regEx: SimpleSchema.RegEx.Email 
    label: "E-mail address" 
    optional: true 
    autoform: 
     placeholder: "[email protected]" 

    message: 
    type: String 
    label: "Message" 
    max: 1000 
    optional: true 
    autoform: 
     placeholder: "Message" 
     rows: 3 

Contacts.attachSchema(Schemas.Contacts) 

просмотров/контакт/contact.html

<template name="contactPage"> 
    <h2>Get in Contact</h2> 
    {{> quickForm 
    schema=contactFormSchema 
    id="contactForm" 
    type="method" 
    meteormethod="sendEmail" 
    template="bootstrap3-horizontal" 
    label-class="col-sm-3" 
    input-col-class="col-sm-9" 
    }} 
</template> 

.meteor/пакеты

coffeescript 
aldeed:collection2 
aldeed:simple-schema 
aldeed:autoform 
twbs:bootstrap 
email 

просмотров/контакт/contact.coffee

if Meteor.isClient 
    Template.contactPage.helpers 
    contactFormSchema: -> 
     Schemas.Contacts 

сервер/contact-send.coffee

if Meteor.isServer 
    Meteor.methods 
    sendEmail: (doc) -> 
    # Important server-side check for security and data integrity 
    check doc, Schemas.contacts 
    # Build the e-mail text 
    text = 'Name: ' + doc.name + '\n\n' + 'Email: ' + doc.email + '\n\n\n\n' + doc.message 
    @unblock() 
    console.log "about to send the email" 
    # Send the e-mail 
    Email.send 
     to: '[email protected]' 
     from: doc.email 
     subject: 'Website Contact Form - Message From ' + doc.name 
     text: text 
+0

текущий код приводит к. Исключение в предоставлении результата invoke 'sendEmail': Ошибка: совпадение не удалось [400] – sasdev

+0

Я хотел бы видеть контактную форму, которая также сохраняет документ. Может быть, это не считается формой контакта, но кажется довольно стандартным, чтобы сохранить форму в db, а затем отправить какое-то уведомление. – RyGuy

Смежные вопросы