在meteor.js中,如何在AutoForm.addHooks的onSuccess函数中使用template参数来获取模板数据上下文?

时间:2015-05-05 14:39:41

标签: meteor meteor-autoform

我将文档附加为addCrop模板的数据上下文。当成功提交autoform时,我想在此数据上下文中获取_id。我假设我可以从模板参数中获取它。但是,我不知道该怎么做。

AutoForm.addHooks(['addCrop'], {
        onSuccess: function(operation, result, template) {
        var _id = template.????
        Router.go("cropEdit", {_id: _id});
    }
});

2 个答案:

答案 0 :(得分:0)

Autoform文档中的onSuccess函数如下所示:

onSuccess: function(formType, result) {}

如果您在路线中设置数据上下文,则可以使用模板助手来获取所需内容。

创建模板助手:

Template.yourTemplate.helpers({
    getRouteContext: function(){ 
      return yourObject;
    }
});

在您的autoform中,将该函数作为属性添加到表单中:

{{#autoForm ... routeContext=getRouteContext}}

现在你可以在你的钩子中访问它:

AutoForm.addHooks(['addCrop'], {
        onSuccess: function(operation, result) {
        console.log(this.formAttributes.routeContext);
    } });

答案 1 :(得分:0)

这似乎对我有用:

AutoForm.addHooks(['addCrop'], {
        onSuccess: function(operation, result) {
        var _id = this.template.id
        Router.go("cropEdit", {_id: _id});
    }
});

即。请注意onSuccess处理程序中this.template是如何存在的。