我无法理解为什么 AutoForm 在这里不能 100% 工作。客户端验证有效,但提交表单没有调用流星方法insertQuestion
。
只要我用modal
模板替换模板的内容,modalQuestion
它就可以工作并调用流星方法。所以我最好的猜测是它与{{> Template.dynamic }}
包含有关,但我自己无法解决这个问题。
谁能告诉我为什么动态模板包含在这里不好?
布局.html
<template name="layout">
{{> modal}}
</template>
布局.js
Session.set('modalData', {template: "modalQuestion", title: "Test"});
modal.js
Template.modalBlock.onRendered(function () {
this.autorun(function() {
if (Session.get('modalData')) {
$('#modal').modal();
}
});
});
模态的.html
<!-- A template to include in index.html that dynamically renders the a modal template -->
<template name="modal">
{{#if modalData}}
{{> Template.dynamic template=modalData.template data=modalData}}
{{/if}}
</template>
<!-- A generic block to be used by our modals -->
<template name="modalBlock">
<div id="modal">
<header>{{title}}</header>
{{> Template.contentBlock }}
</div>
</template>
<!-- A specific modal template -->
<template name="modalQuestion">
{{#modalBlock title=title}}
{{ #autoForm schema=SchemasQuestion meteormethod="insertQuestion" type="method" id="insertQuestionForm" class="form" }}
{{> afQuickField name="text" label=false placeholder="schemaLabel" }}
<button type="submit" class="button">Submit</button>
{{ /autoForm }}
{{/modalBlock}}
</template>