0

У меня есть то, что я считал простой SimpleSchema, с которой у меня в настоящее время есть два шаблона. Один из них содержит быструю форму для вставки нового документа в коллекцию, а другая - это быстрая форма, которая должна обновлять документ из первого шаблона.Meteor Autoform/SimpleSchema - quickform (type = "update") не работает

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

Exception from Tracker recompute function: 
debug.js:41 RangeError: Maximum call stack size exceeded 
    at Object (native) 
    at isObject (http://localhost:3000/packages/aldeed_simple-schema.js?e210968641793751997ffe233af33b53af8566e4:1000:18) 
    at isBasicObject (http://localhost:3000/packages/aldeed_simple-schema.js?e210968641793751997ffe233af33b53af8566e4:1024:10) 
    at parseObj (http://localhost:3000/packages/aldeed_simple-schema.js?e210968641793751997ffe233af33b53af8566e4:1147:15) 
    at http://localhost:3000/packages/aldeed_simple-schema.js?e210968641793751997ffe233af33b53af8566e4:1159:11 
    at Function._.each._.forEach (http://localhost:3000/packages/underscore.js?0a80a8623e1b40b5df5a05582f288ddd586eaa18:159:22) 
    at parseObj (http://localhost:3000/packages/aldeed_simple-schema.js?e210968641793751997ffe233af33b53af8566e4:1155:9) 
    at http://localhost:3000/packages/aldeed_simple-schema.js?e210968641793751997ffe233af33b53af8566e4:1159:11 
    at Function._.each._.forEach (http://localhost:3000/packages/underscore.js?0a80a8623e1b40b5df5a05582f288ddd586eaa18:159:22) 
    at parseObj (http://localhost:3000/packages/aldeed_simple-schema.js?e210968641793751997ffe233af33b53af8566e4:1155:9) 

Вот мои два шаблона:

<template name="newWeddingPage1"> 
    <div class=" col-sm-10 col-sm-offset-1"> 
    <div class=" col-md-6"> 
     <div class="well well-sm"> 

     {{> quickForm collection="Weddings" id="insertWeddingInfo1" omitFields="email, phone, name, price" type="insert"}} 

    </div> 
    </div> 

    <div class=" col-md-6"> 
     <div class="well well-sm"> 
     {{#each theweddingdetails}} 
     <h1 id="price">{{duration}}</h1> 
     {{/each}} 


    </div> 
    </div> 



    </div> 
</template> 


<template name="newWeddingPage2"> 
    <div class=" col-sm-10 col-sm-offset-1"> 
    <div class=" col-md-6"> 
     <div class="well well-sm"> 
     {{#each theweddingdetails}} 
     {{> quickForm collection="Weddings" id="updateWeddingInfo1" doc="this" omitFields="email, phone, name, price" type="update"}} 
     {{/each}} 

    </div> 
    </div> 


    </div> 
</template> 

и моя простая схема здесь:

Weddings.attachSchema(new SimpleSchema({ 

    address: { 
    type: String, 
    label: "Address", 
    optional: true 
    }, 
    startDate: { 
    type: Date, 
    label: "Date of shooting", 
    optional: false, 
    }, 
    startTime: { 
    type: String, 
    optional: true, 
    autoform: { 
     afFieldInput: { 
     type: "time" 
     } 
    } 
    }, 
    duration: { 
    type: Number, 
    label: "Duration (in hours)", 
    optional: true 
    }, 
    price: { 
    type: Number, 
    label: "Price", 
    optional: true, 
    autoform: { 
     type: "hidden", 
     label: false 
    }, 
    autoValue:function(){ return 0 } 
    }, 
    email: { 
    type: String, 
    optional: true, 
    autoform: { 
     afFieldInput: { 
     type: "email" 
     } 
    } 
    }, 
    phone: { 
    type: Number, 
    optional: true, 
    autoform: { 
     afFieldInput: { 
     type: "tel" 
     } 
    } 
    }, 
    name: { 
    type: String, 
    label: "Contact Person", 
    optional: true 
    }, 
    createdBy: { 
    type: String, 
    autoform: { 
     type: "hidden", 
     label: false 
    }, 
    autoValue:function(){ return this.userId } 
}, 
createdAt: { 
    type: Date, 
    autoform: { 
     type: "hidden", 
     label: false 
    }, 
    autoValue:function(){ return new Date(); } 
} 
})); 

Кто-нибудь есть ключ, где я неправильно?

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

ответ

1

В вашей форме обновления, у вас есть doc="this", что означает, что вы просто передавая строку «это» как ваш документ.

Пробег doc=this, без кавычек. Таким образом, вы будете передавать переменную контекста this в качестве вашего документа. Я предполагаю, что в вашем маршрутизаторе или в другом месте вы передали соответствующий документ в качестве контекста данных, чтобы он был доступен в this

+1

спасибо! Вы прекрасный человек. – Louisswiss