我有一個顯示帖子表的模板。用戶可以編輯,添加和刪除帖子。我的網站有兩種不同的帖子:它有一個共享的帖子庫,每個用戶的帖子都附加到他們的個人資料中。如何更改包含模板上的Meteor模板事件的行爲?
我的表是整個網站相同,但CRUD操作基礎上無論是顯示用戶的帖子或網站的共享貼庫是不同的。例如,當用戶添加帖子時,我需要運行Meteor.users.update({_id: [user ID]}, {$push: {'profile.posts': postObject}})
。當網站管理員添加帖子時,我需要運行Articles.insert(postObject)
。
這樣做的最好方法是什麼?我嘗試將一個參數傳遞給我的模板包含(即{{> postsTable source=Articles}}
)並在事件函數中進行測試,但似乎這個替換了數據上下文,這意味着我的模板不能再進入帖子。我也考慮過測試當前的路由並使用它來分支事件函數,但是這種方法似乎有點臭。
或者,我可以爲包含表格的模板綁定事件,而不是在表格模板本身上綁定事件。這可能是最簡單的解決方案,但是當唯一發生變化的是存儲結果數據的方式時,我會在各種模板中複製大量代碼。