将角色名称发布到表Meteor alanning:roles and aldeed:tabular

时间:2016-02-04 19:46:46

标签: meteor user-roles

我在表格中显示创建的角色时遇到问题。我正在使用alanning:roles和aldeed:tabular。要创建表,我有:

TabularTables.RolesAdmin = new Tabular.Table({
   name: "Roles",
   collection: Meteor.roles,
   pub:"rolesadmin",
   allow: function (userId) {
     return Roles.userIsInRole(userId, 'admin');
   },
   columns: [
     { 
       data: "name",
       title: "Role Name",
     },
   ],
});

该出版物如下:

Meteor.publish( 'rolesadmin', function() {
  return Meteor.roles.find( {}, { fields: { "name": 1 } } );
});

运行应用程序时,表格只显示“正在处理...”,因此出现错误,无法访问/查找数据?

我在服务器终端中遇到以下异常:

Exception from sub rolesadmin id 6c6x3mDzweP8MbB9A 
Error: Did not check() all arguments during publisher 'rolesadmin'

如果我签入mongo db.roles.find(),则没有6c6x3mDzweP8MbB9A id的角色。这个错误指的是什么?

1 个答案:

答案 0 :(得分:1)

来自meteor-tabular docs

  

要告诉Tabular使用您的自定义发布功能,请传递   发布名称作为pub选项。你的职能:

     

必须接受并检查三个参数:tableName,id和fields

     

必须发布_id在ids数组中的所有文档。

     

必须进行必要的安全检查

     

应该只发布fields对象中列出的字段,如果是> gt;提供。

     

也可以发布表格所需的其他数据

因此,您需要适当考虑文档中提到的这三个参数。我不确定你真的需要一个自定义的酒吧,但是,根据你发布的内容。