使用铁路由器路由到Meteor autoform提交的新数据?

时间:2015-04-27 18:54:08

标签: meteor iron-router meteor-autoform

我使用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);}
});

3 个答案:

答案 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}
    );
},