Meteor autoform 添加额外的输入
Meteor autoform add extra input
我想在 AutoForm.hooks
after
回调中获取输入值。此输入不是我的模式的一部分,它决定了表单提交后显示的模板(以及其他一些幕后内容)。我在我的自动表单模板中使用纯 html 创建输入。
我试过了
insert: function(error, result, template){
`$(template.firstNode).parent().find(".my-input").val()`
}
这似乎为我提供了默认模板 html,而不是实时输入。
获取此输入值的最佳方法是什么?
更新
我试图通过简单地使用 jQuery 并选择输入来获取 after
回调中的输入值。但是,在 after 回调 运行 之前,表单会通过自动表单中的某种方法清除,因此这是不行的。
我最终从 before
回调中全局存储这个值,然后在 after
回调中检查该值。
这看起来仍然是一种老掉牙的做事方式 - 我应该能够以某种方式获取此值,即使我必须使用自动表单以 'special' 方式创建输入。
另一个问题是我可能一次在 DOM 中有多个这种形式,所以我的解决方案在那种情况下不会完全有效。
我想在这种情况下你做错了什么。使用autoform来存储一种'magic'听起来有点奇怪。
是否可以使用例如会话对象并将您的数据存储在那里,或者检查您是否可以通过特殊路由控制器来完成。
AutoForm.addHooks(['wordForm'], {
after: {
insert: function(error, word, template) {
if(!error){
url = Router.current().params;
Router.go('wordsList', {
languageId: url.languageId,
character: url.character});
Session.set('isModalShown', false);
}
},
update: function(error, word, template) {
if(!error){
url = Router.current().params;
Router.go('wordsList', {
languageId: url.languageId,
character: url.character});
Session.set('isModalShown', false);
}
},
}
});
在保存后将这种方法用于 open/close 模态,并将此模态 "bind" 用于 URL。
要防止 AutoForm 在提交时清除输入,您可以在自动表单模板上指定 resetOnSuccess=false
。然后您可以在挂钩中获取所需输入的值,然后调用 AutoForm.resetForm(formId)
手动清除表单。
我想在 AutoForm.hooks
after
回调中获取输入值。此输入不是我的模式的一部分,它决定了表单提交后显示的模板(以及其他一些幕后内容)。我在我的自动表单模板中使用纯 html 创建输入。
我试过了
insert: function(error, result, template){
`$(template.firstNode).parent().find(".my-input").val()`
}
这似乎为我提供了默认模板 html,而不是实时输入。
获取此输入值的最佳方法是什么?
更新
我试图通过简单地使用 jQuery 并选择输入来获取 after
回调中的输入值。但是,在 after 回调 运行 之前,表单会通过自动表单中的某种方法清除,因此这是不行的。
我最终从 before
回调中全局存储这个值,然后在 after
回调中检查该值。
这看起来仍然是一种老掉牙的做事方式 - 我应该能够以某种方式获取此值,即使我必须使用自动表单以 'special' 方式创建输入。
另一个问题是我可能一次在 DOM 中有多个这种形式,所以我的解决方案在那种情况下不会完全有效。
我想在这种情况下你做错了什么。使用autoform来存储一种'magic'听起来有点奇怪。
是否可以使用例如会话对象并将您的数据存储在那里,或者检查您是否可以通过特殊路由控制器来完成。
AutoForm.addHooks(['wordForm'], {
after: {
insert: function(error, word, template) {
if(!error){
url = Router.current().params;
Router.go('wordsList', {
languageId: url.languageId,
character: url.character});
Session.set('isModalShown', false);
}
},
update: function(error, word, template) {
if(!error){
url = Router.current().params;
Router.go('wordsList', {
languageId: url.languageId,
character: url.character});
Session.set('isModalShown', false);
}
},
}
});
在保存后将这种方法用于 open/close 模态,并将此模态 "bind" 用于 URL。
要防止 AutoForm 在提交时清除输入,您可以在自动表单模板上指定 resetOnSuccess=false
。然后您可以在挂钩中获取所需输入的值,然后调用 AutoForm.resetForm(formId)
手动清除表单。