0

Я использую пакет 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 
    } 
    } 
}); 
+1

В вашем примере отсутствует '.val()', например '$ (e.target) .find ('[name = name]'). Val()' –

+0

Спасибо Nathan, bad typo. Ошибки все еще происходят, несмотря на мою работу с грязной пастой. – Colton45

+0

Боковой вопрос: почему вы не используете AutoForm? – mquandalle

ответ

0

Наконец увидел вопрос .. в шаблоне, в HTML, атрибут заполнителем, кажется, зарегистрировать в качестве значения даже хотя атрибут значение имеет содержание ..

я имел:

<input name="zipcode" type="text" class="form-control" value="{{zipcode}}" placeholder="Enter a Zip Code" /> 

изменил его:

<input name="zipcode" type="text" class="form-control" value="{{zipcode}}" /> 

И это сработало:)

Не уверен, если это то, что как раз известно, и я должен был знать, или ошибка. Я отправлю его независимо.

+1

Хм. некоторые плагины копируют 'placeholder' в атрибут' value' для браузеров, у которых нет html5 .. –

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