2016-03-11 2 views
0

В настоящее время я использую lukemadera:autoform-googleplace, чтобы сохранить адрес пользователя. Когда пользователь сохраняет свой адрес, он сохраняет в схеме только fullAddress field. Я думал, что он сломал адрес на его части; улица, штат, почтовый индекс и т. д. Таким образом, вы можете публиковать отдельные части отдельно, если это необходимо. Я бы хотел опубликовать только state при определенных обстоятельствах, но я не уверен, как это сделать, поскольку у меня есть строка поля fullAddress. Дайте мне знать, если вам нужно больше разъяснений.Googleplace не сохраняется в коллекции

Путь: address.js

Template.address.helpers({ 
    optsGoogleplace: function() { 
    return { 
     // type: 'googleUI', 
     // stopTimeoutOnKeyup: false, 
     googleOptions: { 
     componentRestrictions: { country:'au' } 
     } 
    } 
    }, 

}); 

Путь: address.html

{{#autoForm collection="Meteor.users" id="user" doc=currentUser type="update"}} 
{{> afQuickField name="profile.address" type="googleplace" opts=optsGoogleplace class="form-control"}} 
{{autoForm}} 

Путь: Schema.js

Schema.Address = new SimpleSchema({ 
     fullAddress: { 
      type: String 
     }, 
     lat: { 
      type: Number, 
      decimal: true 
     }, 
     lng: { 
      type: Number, 
      decimal: true 
     }, 
     geometry: { 
      type: Object, 
      blackbox: true 
     }, 
     placeId: { 
      type: String 
     }, 
     street: { 
      type: String, 
      max: 100 
     }, 
     city: { 
      type: String, 
      max: 50 
     }, 
     state: { 
      type: String, 
      regEx: /^A[LKSZRAEP]|C[AOT]|D[EC]|F[LM]|G[AU]|HI|I[ADLN]|K[SY]|LA|M[ADEHINOPST]|N[CDEHJMVY]|O[HKR]|P[ARW]|RI|S[CD]|T[NX]|UT|V[AIT]|W[AIVY]$/ 
     }, 
     zip: { 
      type: String, 
      regEx: /^[0-9]{5}$/ 
     }, 
     country: { 
      type: String 
     } 
    }); 

ответ

0

Если вы его настроить правильно, что-то, как это должно работать:

Schemas = {}; 

Schemas.Address = new SimpleSchema({ 
    fullAddress: { 
     type: String 
    }, 
    lat: { 
     type: Number, 
     decimal: true 
    }, 
    lng: { 
     type: Number, 
     decimal: true 
    }, 
    geometry: { 
     type: Object, 
     blackbox: true 
    }, 
    placeId: { 
     type: String 
    }, 
    street: { 
     type: String, 
     max: 100 
    }, 
    city: { 
     type: String, 
     max: 50 
    }, 
    state: { 
     type: String, 
    }, 
    zip: { 
     type: String, 
    }, 
    country: { 
     type: String 
    }, 
}); 



Schemas.MainSchema = new SimpleSchema({ 
    address: { 
     type: Schemas.Address, 
     optional: true 
    } 
}); 


MainSchema = new Mongo.Collection("MainSchema"); 

MainSchema.attachSchema(Schemas.MainSchema); 


MainSchema.allow({ 
    insert: function() { return true; }, 
    update: function() { return true; }, 
    remove: function() { return true; } 
}); 

Может быть, проверить эти из:

Моя только другая догадка что-то не так с вами помощник google options. Я не использую это прямо сейчас, и приведенная выше настройка работает для меня.

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