8

我正在使用带有 AutoForm 和 Iron Router 的 Meteor。

我有一个用于插入数据的自动表单,我想在成功插入后重定向到我添加的数据页面。我该怎么做?

这是针对:

{{#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);}
});

回调/挂钩

AutoForm.hooks({
  add: {
    onSuccess: function(doc) {
      Router.go('page', ???);
    }
  }
});
4

3 回答 3

6

AutoForm 挂钩将返回您的 docId。见: https ://github.com/aldeed/meteor-autoform#callbackshooks

this.docId:附加到表单的文档的_id属性,如果有的话,或者对于type='insert'表单,新插入的文档的_id,如果已经插入的话。

所以使用:

Router.go('page',{_id: this.docId});
于 2015-04-27T19:46:37.243 回答
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

于 2016-01-14T15:59:15.223 回答
0
onSuccess: function(formType, result) {
    Router.go(
        ['adminDashboard', result, 'Edit'].join(''), 
        {_id: this.docId}
    );
},
于 2018-02-03T06:21:57.230 回答