Meteor(0.9.0.1):使用Helper和自动表单为多个用户更新记录

Meteor (0.9.0.1): Using Helper with autoform to update a record for multiple users

本文关键字:表单 用户 新记录 更新 Helper 使用 Meteor      更新时间:2023-09-26

我正在构建我的管理区域。我认为让多个管理员用户每个人都可以访问相同的数据会很有用。我正在使用此角色包。

我使用自动表单生成表单,因此当以"AdminA"身份登录时,该用户会在表单中输入一个值并提交,然后记录将存储在AdminA的帐户下。AdminB随后登录,但在表单上看不到值,因为该用户无权访问AdminA的帐户。我需要一种方法来告诉自动表单更新一条记录。

下面的代码是我正在努力实现的。有人能建议我该怎么做才能让它发挥作用吗?我看了一下自动表单文档,我不完全确定。

表单输入框在呈现时看起来有点像这样:

<input type="text" name="VehiclePrice" value="10000" />
<input type="hidden" name="_id" value="LEXANiNZtunFPfBea">

模板:

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

助手:

Template.VehiclePrice.helpers({ 
 VehiclePrices: function () {
   return VehiclePrice.find().map(function (c) {
     return {price: c.price, _id: c._id};
   });
 }
});

这种关系将是多个管理员用户与一个记录(*:1)的关系

有什么想法吗?

通过发布车辆集合,您可以通过程序确定谁有权访问数据,以及发布了什么数据集。查看Meteor发布文档(http://docs.meteor.com/#meteor_publish)。

设置集合后,您可以通过publish命令确定要发布的数据集,该命令类似于:

Meteor.publish("vehicleInfo", function () { if ( this.role == "admin" ) return Vehicle.find(); else return Vehicle.find({some subset of the data, or none at all (false)}); });

事实证明,这是我的一个助手的问题。它限制了用户的数据,我对此进行了修改,效果很好。

相关文章: