Meteor Users集合和Deps.自动运行的问题
Meteor Users collection and Deps.autorun problems
我仍然在努力理解如何访问流星。Users作为另一个集合查询的外键。我知道默认情况下只有当前用户被发布,所以我在服务器上有一个发布作为
Meteor.publish('itemOwner', function(userId) {
check(userId, String);
var user = Meteor.users.find({id: userId});
return user;
// return Meteor.users.find({id: userId}, {
// fields: {'profile': 1} });
});
我有一个Deps。客户端自动运行…
Deps.autorun(function () {
var itemOwnerId = Session.get("itemOwnerID");
if (itemOwnerId) {
debugger
var ID = Session.get("itemOwnerID");
Meteor.subscribe('itemOwner', Session.get("itemOwnerID"));
}
});
我在模态表单加载上设置会话ID,并通过调用ownerProfile helper(或尝试)在模板中显示它
Template.showQuoteModalInner.helpers({
getQuote: function () {
// Get the quote ID from the session var
var quote = Session.get("quoteID");
if(quote) {
debugger;
var ID = quote.user._id;
Session.set("itemOwnerID", quote.user._id);
return quote;
}
},
ownerProfile: function() {
debugger;
var quote = Session.get("quoteID");
if(quote) {
var ID = quote.user._id;
var theUser = Meteor.users.find({_id: quote.user._id});
return theUser;
};
}
});
现在,我可以在每个阶段跟踪用户ID,并看到它被正确地传递给自动运行程序和帮助程序。如果我在ownerProfile helper中的调试器处停止程序,并在控制台中放入Meteor.user。fetch({_id: "这里的id "}).fetch()我得到正确的用户返回…但是,在处理程序本身Meteor.users.find返回null??我错过了什么?
我注意到两种可能性。
首先,在publish函数的find中缺少下划线。
.find({id: userId})
应该是.find({_id: userId})
。
但是,如果您在控制台中看到用户(而不是登录用户),则这可能不是问题。
第二,如果你没有从你的Template.showQuoteModalInner.ownerProfile
助手看到用户,这可能是因为你正在返回一个find()而不是findOne()。
find()返回游标,而findOne()返回记录。如果您想要显示单个用户的属性,请尝试使用findOne()。
相关文章:
- 运行Infinite Scroll后调用函数时出现问题
- 无法运行php代码,有角度路由问题
- 在运行时使用jquery准备表体会导致设计问题
- 动画、计时和运行循环等问题
- 让Javascript在SharePoint 2010上运行时遇到问题
- 如果调试器关闭,Internet Explorer将出现运行代码问题
- 数据互绑定问题:转换器只运行一次,无法绑定元素的 ID
- html代码没有运行jquery问题
- 试图修复一个倒计时计时器问题,该问题导致计时器运行,然后在使用Javascript时崩溃约10秒
- 在iOS应用程序的分析云代码上运行crypto-js的问题
- 代码运行时出现问题
- 在不同端口上运行时,rest api应用程序服务器(express)和Angulars js应用程序之间的Cors问题
- jquery函数在运行javascript和更改元素后出现问题
- 代码有什么问题?它给了我一个运行时错误
- 在Mac OSX上运行MongoDB时出现问题
- 运行 Javascript 函数时遇到问题
- 浏览器兼容性问题 - 无法在 IE 上运行
- 由于字符串长度问题,代码无法运行
- 解决进入路线前未运行的问题
- jQuery.slideUp()效果运行问题