我使用Meteor和AutoForm& amp;铁路由器。
我有一个用于插入数据的autoform,我想重定向到成功插入后添加的数据页面。我该怎么办?
这是For:
webRequest.renderView = false
铁路由器:
{{#autoForm collection="Products" id="add" type="insert"}}
<h4 class="ui dividing header">Products Information</h4>
{{> afQuickField name='name'}}
{{> afQuickField name='info'}}
<button type="submit" class="ui button">Insert</button>
{{/autoForm}}
回调/钩
Router.route('/products/:_id', {
name: 'page',
data: function() { return Products.findOne(this.params._id);}
});
答案 0 :(得分:6)
AutoForm挂钩会返回docId。看到: https://github.com/aldeed/meteor-autoform#callbackshooks
this.docId:附加到表单的doc的_id属性,如果 有一个,或类型=&#39;插入&#39;形式,新的_id 插入的文档,如果插入了文档。
所以使用:
$route['(:any)'] = 'my_controller/$1';
答案 1 :(得分:0)
根据github上的文档,签名发生了变化: 不要忘记声明表单或null以应用挂钩。
所有表格
AutoForm.addHooks(null,{
onSuccess: function(formType, result) {
Router.go('page',{_id: this.docId});
}
});
表格
AutoForm.addHooks(['yourForm'],{
onSuccess: function(formType, result) {
Router.go('page',{_id: this.docId});
}
});
最好检查最新签名:https://github.com/aldeed/meteor-autoform#callbackshooks
答案 2 :(得分:0)
onSuccess: function(formType, result) {
Router.go(
['adminDashboard', result, 'Edit'].join(''),
{_id: this.docId}
);
},