Я использую пакет Collection2 для интеграции схемы и простого метода проверки для моего приложения Meteor.Meteor Collection2 Ошибка обновления метаданных
Вкладыши работают нормально, с ошибкой соответствующим образом и вставляются, если они действительны в соответствии с назначением. Согласно документам, использование метода обновления почти одинаково, но ошибки проверки продолжают появляться, даже если все верно для схемы.
Так, например, я отправлю новое свойство (фактический дом/квартиру), который проверяет схему, и это не проблема. Я перейду к редактированию этого свойства, изменению одной буквы на 1 поле и ошибкам в разных полях.
Я как бы растерялся. Это довольно просто. Я не обновлял документы без проблем, прежде чем вводить Collection2, но я не думаю, что это проблема с пакетом как таковым, потому что я знаю, что он используется и активно обновляется. Может быть, мне нужно поставить этот метод на сервер?
Любая помощь будет оценена по достоинству. Благодаря!
Клиент файл на стороне JS:
Template.propertyEdit.events({
'submit form': function(e){
e.preventDefault();
var property_details = {
name: $(e.target).find('[name=name]').val(),
address: $(e.target).find('[name=address]').val(),
city: $(e.target).find('[name=city]').val(),
state: $(e.target).find('[name=state]').val(),
zipcode: $(e.target).find('[name=zipcode]')
}
Properties.update(this._id, {$set: property_details}, function(error,result){
if(error){
for(var i=0; Properties.simpleSchema().namedContext().invalidKeys().length > i; i++){
throwError(Properties.simpleSchema().namedContext().invalidKeys()[i].message);
}
}else{
alert("Property details updated");
Router.go('propertyOverview', {_id: result});
}
});
});
Коллекция:
Properties = new Meteor.Collection2('properties', {
schema: {
name: {
type: String,
label: "Property Name",
min: 1
},
address: {
type: String,
label: "Address",
min: 1
},
city: {
type: String,
label: "City",
min: 1
},
state: {
type: String,
label: "State",
min: 2,
max: 2
},
zipcode: {
type: String,
label: "Zip Code",
min: 5,
max: 11
},
userId: {
type: String,
label: "User Id",
min: 8
}
}
});
В вашем примере отсутствует '.val()', например '$ (e.target) .find ('[name = name]'). Val()' –
Спасибо Nathan, bad typo. Ошибки все еще происходят, несмотря на мою работу с грязной пастой. – Colton45
Боковой вопрос: почему вы не используете AutoForm? – mquandalle