В настоящее время я использую 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
}
});