无法访问棱角流星中的集合
Cannot access a collection in Angular-Meteor
我正在尝试使用Angular-Meteor中集合中的数据,但到目前为止我无法访问它。
在 lib/collections 中.js我定义了集合:
UserMeta = new Mongo.Collection('userMeta');
服务器/发布.js发布它:
Meteor.publish('userMeta', function() {
return UserMeta.find();
});
在我的客户端代码客户端/脚本/控制器/settings.controller中.js我订阅:
angular
.module('App')
.controller('SettingsCtrl', SettingsCtrl);
function SettingsCtrl($scope, $reactive) {
$reactive(this).attach($scope);
this.subscribe('userMeta');
//...
}
我发现似乎有多种订阅方式(甚至在 Angular-Meteor 的官方教程中使用不一致(,但我决定使用 v.1.3.2 的最新语法: 订阅 API
但是如果我想查看集合的全部内容,它会返回一个空数组:
console.log(UserMeta.find().fetch()); // =[]
或:
console.log(UserMeta.findOne()); // =undefined
但是,如果我在浏览器中的客户端控制台中运行这些命令,则会返回预期的结果。
有人可以给我一个简短的例子,我如何使用我的收藏吗?我已经习惯了(纯(流星处理这个问题的方式,并且对它在棱角流星中似乎没有那么简单感到困惑。
尝试使用
Meteor.Methods
在服务器端呼叫
Meteor.methods({
getUserMeta: function () {
var data = UserMeta.find({}).fetch();
return data;
}
都在服务器端使用
Meteor.call('getUserMeta',function (err, data) {
if (!err) {
Console.log(data);
} else {
console.log("error");
}
});
在控制台中使用"集合"时.log它尚未准备就绪,并且没有任何数据。您可以使用控制台.log内部帮助程序,或者您应该像这样检查集合是否已准备就绪:
// Client-side
var subs = Meteor.subscribe('lastMsgRead', Meteor.userId());
Meteor.autorun(function() {
if (subs.ready()) { ... }
});
相关文章:
- 如何查找流星集合中最后一个元素/对象的id
- 比较集合中嵌入式数组的流星
- 流星.js按字段中的值筛选集合
- 流星取消订阅客户端上的集合
- 上传与流星集合相关的图像
- 流星:用 reactiveVaR 观察集合
- 如何用图形填充流星集合并单独显示它们
- 流星:检查是否定义了集合
- 集合字段中的流星计算值
- 流星 - 将投票添加到集合中的特定 ID
- 流星:等待客户端排序的集合
- 如何使流星集合非反应性取决于网址
- 在流星集合文档中插入值
- 开始使用 流星 - 显示集合
- 流星 - 仅发布集合的计数
- 流星 - 将数据从一个集合移动到另一个集合
- 为什么将数据加载到流星集合中需要这么长时间
- 如何在集合中的数组内搜索流星
- 如何在流星.js中访问集合的元素
- 流星:发布中未定义的集合