使用 Iron Router 路由到 Meteor autoform 提交的新数据?

Posted

技术标签:

【中文标题】使用 Iron Router 路由到 Meteor autoform 提交的新数据?【英文标题】:Route to the new data submitted by Meteor autoform using iron router? 【发布时间】:2015-07-06 09:07:40 【问题描述】:

我将 Meteor 与 AutoForm 和 Iron Router 一起使用。

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

这是为了:

#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', ???);
    
  
);

【问题讨论】:

***.com/questions/26851878/… 【参考方案1】:

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

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

所以使用:

Router.go('page',_id: this.docId);

【讨论】:

【参考方案2】:

根据 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

【讨论】:

【参考方案3】:
onSuccess: function(formType, result) 
    Router.go(
        ['adminDashboard', result, 'Edit'].join(''), 
        _id: this.docId
    );
,

【讨论】:

虽然此代码 sn-p 可能是解决方案,但 including an explanation 确实有助于提高您的帖子质量。请记住,您是在为将来的读者回答问题,而这些人可能不知道您提出代码建议的原因。

以上是关于使用 Iron Router 路由到 Meteor autoform 提交的新数据?的主要内容,如果未能解决你的问题,请参考以下文章

在页面转换完成时暂停 Meteor 的 Iron Router 中的路由

如何使用 Meteor 模板助手编辑 Iron-Router 中作为参数传递的值?

Meteor js,iron-router,在服务器端使用 Route.go('...') 进行单元测试不起作用

使用 Iron Router 在 Meteor 包中包含 HTML 模板

Iron-router中的中间件

如何在 Iron Router Meteor 中检查当前路线