2014-09-24 31 views
2

我使用autoform來創建表單。我有下面的模板,當提交表單時正確地將數據插入到集合中。當插入「ContactDetails」集合成功完成時,我想要做的是將一條記錄插入另一個集合。流星:我如何創建後插入鉤子?

<template name="contactDetailsForm"> 
{{#if submitted}} 
    {{> quickForm collection="ContactDetails" omitFields="createdBy" doc=editingDoc id="contactDetailsForm" type="update"}} 
{{else}} 
     {{> quickForm collection="ContactDetails" omitFields="createdBy" id="contactDetailsForm" type="insert"}} 
{{/if}} 
</template> 

據我所知,我需要添加一個鉤子。我真的不確定我在做什麼。我想這將是這個樣子:

AutoForm.addHooks(['contactDetailsForm'], { 
    after: { 
     insert: function(error, result) { 
     if (error) { 
     console.log("Insert Error:", error); 
     } else { 
     console.log("Insert Result:", result); 
     // NOW DO INSERT INTO OTHER COLLECTION 
     } 
     } 
    } 
}); 

誰能告訴我如何插入一條記錄到另一個集合後插入體具有不同的集合已經成功完成?

任何意見/幫助/例如此將受到真誠讚賞。

回答

3

matb33:collection-hooks包是一個創建這種鉤子的標準方法。先用

meteor add matb33:collection-hooks 

添加它然後創建你的鉤子:

ContactDetails.after.insert(function(userId, doc) { 
    console.log("Inserted:", this._id); 
    ... 
}); 
+0

這正是我所需要的謝謝:) – user1532669 2014-09-24 20:24:34

+0

我怎樣才能得到這個在客戶端上工作?我想設置一個會話變量,但得到會話未定義的錯誤 - 500. – DeBraid 2015-05-01 14:25:48

+0

@DeBraid,你的代碼位於'client'文件夾或共享位置?你在瀏覽器控制檯中看到錯誤嗎? – 2015-05-05 10:52:53

1

一般掛鉤尚未公佈 - 但他們在自動窗體: https://github.com/aldeed/meteor-autoform#callbackshooks

如果您沒有使用自動窗體我會做插件與流星的方法,在那裏你可以只是做插入後,插入第一個之後。 看到這個https://www.discovermeteor.com/blog/meteor-methods-client-side-operations/

+2

收集鉤也是值得一提的https://github.com/matb33/meteor-collection-hooks – saimeunt 2014-09-24 17:59:40

+0

這正是我所需要的謝謝:) – user1532669 2014-09-24 20:23:54