2015-08-24 1 views
1

Я пытаюсь обновить данные так же, как this example, но вместо использования afQuickField name="nameOfTheField Я использую afQuickFields. Я попытался отображать поля отдельно (как в демо), он тоже не работает. Журналы браузера показывают правильные данные.MeteorJS: Автозаполнение формы с данными из коллекции (autoform)

HTML enter image description here

JS

enter image description here

Попытка же самое, используя имя поля и значение атрибута работает, но подход слишком специфичны и не является идеальным в мой случай

enter image description here

UPDATE: типа Form изменен на "обновление", до сих пор не работает

+0

Есть ли причина того, что вы используете атрибут схемы в вашем AUTOFORM вместо атрибута коллекции? Кроме того, размещение изображений вашего кода намного менее полезно, чем публикация фактического кода. –

+0

Никакой конкретной причины, однако я также пытался использовать коллекцию, но это не имело никакого значения. В чем проблема с изображениями? –

+1

Использование изображений делает так, чтобы люди, которые хотят вам помочь (и воспроизводят вашу проблему), должны вручную вводить код, а не копировать и вставлять. Вы также должны попытаться опубликовать достаточно кода, чтобы его можно было воспроизвести. См. Http://stackoverflow.com/help/mcve. Наличие 'pptForm' в предоставленном коде без какого-либо определения того, что это такое, и ссылка на' _id: 'shjkh23897x'', которая не будет существовать вне вашей собственной базы данных, не полезна. –

ответ

0

Предполагая, что у вас есть набор клиентов и схему так:

Библиотека/schema.js

Schemas = {}; 

Schemas.customerSchema = new SimpleSchema({ 
    name: { 
    type: String, 
    index: 1, 
    unique: true 
    }, 
    age: { 
    type: Number, 
    optional: true 
    } 
}); 

Collections = {}; 

Customers = Collections.Customers = new Mongo.Collection("Customers"); 
Customers.attachSchema(Schemas.customerSchema); 

Форма обратной связи может быть такой:

<template name="customerUpdate"> 
{{#autoForm id="afUpdateDemo" type="update" collection=Collections.Customers doc=this}} 
{{> afQuickFields schema="Schemas.customerSchema"}} 
    <div class="text-center"> 
    <button type="submit" class="btn btn-primary">Update</button> 
    </div> 
{{/autoForm}} 
</template> 

Я передаю схему в afQuickFields. Это обеспечит поля для каждого элемента схемы. Вы также можете передать fields или omitFields атрибутам, если вам нужно быть более избирательными, какие поля включены. Я использую doc=this, так как я устанавливаю контекст данных на своем маршруте, но вы можете продолжать использовать instanceData, как вы показали, полагая, что это действительная ссылка на документ (вы не указали достаточно кода, чтобы узнать, где это значение прибывает из).

Я поставил пример приложения на GitHub: https://github.com/markleiber/so_32178232