返回的游标数组不会显示任何结果
returning array of cursors does not show any result
im试图解决一个"加入";通过这样做的两个集合:
foundUsers: function()
{
var searchUser = Session.get("searchUser"); // user search criteria
var usf = User.find(searchUser, {}); // get user results
var typeId = usf.map(function(p) { return p.us_ut_id }); // get type ids
var tyf = Type.find({_id: {$in: typeId}}, {}); // new Meteor.Collection.ObjectID("533d63bef0e236f9d76db905")
var typeName = tyf.map(function(p) { return p.ut_name.toString() }); // check type names
console.log(typeName);
return [usf, tyf];
}
我的html字段中的结果只是空白字段,没有错误消息,所以我做得不对吗?
这样做的目的是使用typeId中的_id数字来获得以html形式显示的用户的正确类型
return usf;//这将返回没有类型的所有用户
return tyf;//这将返回没有用户的所有类型
更新1:
模板如下所示:
<template name="getResult">
{{#each foundUsers}}
<input type="text" id="firstname" value="{{us_firstname}}"/><br>
<input type="text" id="lastname" value="{{us_lastname}}"/><br>
<input type="text" id="typename" value="{{us_ut_name}}"/><br>
{{/each}}
</template>
us_xxx应该查找诸如名称之类的用户数据。us_ut_name应该显示通过从us_ut_type获得的ObjectID获得的类型的名称。
更新2:
所以我做了这样的代码,我相信它应该可以工作,因为它在控制台中打印正确的数据:
// display user data
Template.getResult.helpers(
{
foundUsers: function()
{
var selector = Session.get('searchUser');
var users = User.find(selector).fetch();
return _.each(users, function(user)
{
console.log(user);
var result = user.us_ut_name = Type.findOne({_id: new Meteor.Collection.ObjectID(user.us_ut_id._str)}).ut_name;
console.log(user.us_firstname + ", " + result);
return result;
});
}
});
但结果没有显示在页面上。
该打印例如:
约翰,理发师
木匠mike
雄鹿、小狗
在控制台中,但不在网站的输入字段中。
解决方案:
Template.getResult.helpers(
{
foundUsers: function()
{
var selector = Session.get('searchUser');
var users = User.find(selector).fetch();
_.each(users, function(user)
{
console.log(user);
var result = user.us_ut_name = Type.findOne({_id: new Meteor.Collection.ObjectID(user.us_ut_id._str)}).ut_name;
console.log(user.us_firstname + ", " + result);
return result;
});
return users;
}
});
感谢David Weldon
如果我正确理解您的模型,这可能会起作用:
foundUsers: function() {
var selector = Session.get('searchUser');
var users = User.find(selector).fetch();
_.each(users, function(user) {
return user.tyf_type = Type.findOne(user.us_ut_id).ut_name.toString();
});
return users;
}
它使用给定的选择器获取用户,然后通过添加tyf_type
属性来修改每个用户。唯一的缺点是它使用fetch
,每次用户更改时都会重新绘制整个列表。
相关文章:
- D3.js生成有效的SVG,但不显示任何内容
- HTML 5 和 3.js 代码不会在网页上显示任何内容
- jquery Ajax没有;不要显示任何信息(既不显示成功也不显示失败)
- javascript函数,该函数不起作用,但不会显示任何错误
- JavaScript 未显示任何警报对话框
- 谷歌地图没有显示任何标记
- 没有使用Highcharts显示任何图形
- jQuery导航下拉菜单未显示..任何想法
- AngularJS:console.log不显示任何内容
- ng-repeat不显示任何内容
- ng-重复不显示任何内容
- extjs在chrome中可以正常工作;不要在firefox或ie中显示任何内容
- 使用javascript在标签上不显示任何内容
- console.log在FF插件生成器中没有显示任何内容
- TypeAhead.js没有显示任何输出Rails
- 使用ajax运行php脚本不会显示任何结果
- 我的Javascript项目正在访问网络摄像头,但没有显示任何内容
- 日期-时间范围指令字段未显示任何值
- owl.carousel help-没有显示任何东西
- PhoneGap-Javascript没有显示任何响应