我试图将所有Meteor.users发布到一个People集合中.我的发布函数看起来就像文档中的那个,除了我没有指定要发布的字段:
Meteor.publish("people", function () {
if (this.userId) {
console.log(Meteor.users.find({}).count());
return Meteor.users.find();
} else {
this.ready();
}
});
Run Code Online (Sandbox Code Playgroud)
该console.log打印80所以我知道有用户.但是当我在我的客户端上查询时,People.find().count()它会返回0.我做错了什么,谢谢.
我见过网站的博客是用Meteor创建的(我相信Meteor.com是).人们是怎么做到的?我可以创建一个页面,其中包含一个带有标题和文本字段的表单,但我似乎无法实现隐藏该表单的逻辑跳跃.就目前而言,它与发表的文章一起坐在页面上,这显然并不理想.
谢谢你的想法!
我不明白为fontawsome包装有什么意义.我只是将css文件添加到我的客户端目录中.有人可以告诉我,只有一个样式表的包装有什么意义吗?
在Meteor文档中Meteor.call(),它显示:
如果你包含一个回调函数作为最后一个参数(它不能作为方法的参数,因为函数不可序列化)...
我运行了类似于Meteor.call('name', function() {console.log('abc');}, function() {})之前的东西,其中function() {console.log('abc');}作为参数传入,而empty function() {}用作异步回调的存根.它有效.
那个声明告诉我我不应该将任何函数作为参数传递给函数,或者只应用于回调函数.
在任何一种情况下,为什么该函数不可序列化?我的浅层理解只是一个可序列化的对象,你可以把它变成一个位序列(1's 0' 和's'),因为所有数字都是位序列,我不明白为什么函数不可序列化.
我找到了一些解释,但它们都与Java有关,对于那些还不知道序列化重要性的人来说,它并没有多大帮助.
为什么函数不可序列化?(它与它有什么关系Meteor.call()?)
我的Meteor模板之一中有一个select输入,它具有与每个select选项相关的三段数据。我正在尝试将所有三个数据(作为对象)发送到新模板,该模板通过Blaze API在用户选择后触发的“更改”事件上呈现。我的印象是可以使用Blaze.getData方法执行此操作,但是它似乎对我不起作用。我想知道是否有人使用此方法有经验,并且可能能够帮助我进行故障排除。
我设置了一个MeteorPad,并提供了我在此处尝试执行的操作的示例:http ://meteorpad.com/pad/69XGm5nWPutg8an7T/Select%20Item
另外,这是相关的“更改”事件代码:
Template.selectItem.events({
'change .select_item': function(event) {
event.preventDefault();
var view = Blaze.getView(event.target);
console.log(view); // me debugging
var item = Blaze.getData(view);
console.log(item); // me debugging
Blaze.renderWithData(Template.selectedResults, item, document.getElementById('results'));
}
});
Run Code Online (Sandbox Code Playgroud) 在Meteor中定义了3名全球助手,具体如下:
Template.registerHelper('activeTrips', function () {
console.log("Global Active Trips");
return Trips.find().count();
});
Template.registerHelper('isSuperUser', function () {
console.log("Global isSuperUser");
return Meteor.user().username === "superuser";
});
Template.registerHelpr('isAdminUser', function () {
console.log("Global isAdmin");
return Roles.userIsInRole(Meteor.user(), ['admin']);
});
Run Code Online (Sandbox Code Playgroud)
用作模板计数显示{{activeTrips}}显示正确计数!
但其他助手 - 返回正确或错误 - 似乎不适用于把手{{#if}}构造?
例如{{#if isAdminUser}} do admin stuff {{/ if}}永远不会工作,即使我强制函数返回true - 事实上,帮助程序永远不会根据我的控制台输出调用.
我卸载了自动订阅并重新启动了流星应用程序.从那以后,我无法在客户端访问我的收集数据.
与空数组返回相关的每个问题都会得到相同的答案:订阅的数据尚不可用.但无论我等多久,我都看不到客户端上的数据.
服务器:
Meteor.startup(function () {
Meteor.publish("states", function () {
return states.find();
});
});
Run Code Online (Sandbox Code Playgroud)
登录states.find().fetch()服务器会按预期吐出我的状态.
在客户端:
Meteor.subscribe("states", function(){
console.log(states, states.find(), states.find().fetch());
});
Run Code Online (Sandbox Code Playgroud)
states并按states.find()预期返回对象,.fetch()返回一个[].
等待(甚至几分钟)然后states.find().fetch()在浏览器控制台中运行让我[]依旧.
思考?
编辑
集合在isServer/isClient块之外声明(以利用模式).
states = new Meteor.Collection("states");
Run Code Online (Sandbox Code Playgroud) 我正在考虑使用它们中的任何一个来构建我们的启动,这就像一个带有验证,验证的工作门户,并包括自由职业的所有功能.
流星或风帆是否适合用作后端,还是应该像Django一样使用更强大的后端?在Django/python中,使用我们后端的javascript是否能够在未来扩展?
我真的希望在这个问题上有一些意见来做出决定.
我正在尝试选择合适的技术来制作Meteor的反应图表.
我需要制作反应饼图,然后在线图上实时更改数据库,图表会自动更新.我使用Meteor JS作为后端.
哪些图表可用于此目的 - 高图,d3图表,chartjs,流星图或任何其他图表?使用这些图表与Meteor之间的基本区别是什么?
我是图表和Meteor中的新手,之前没有与他们中的任何一个合作过.
我知道有一些类似于这个问题的现有问题,但它们都没有提出同样的问题.谢谢你的帮助.

我有一个帮助器compare,它返回一个只突出显示文本的css类."better"使它变绿,"worse"颜色为红色.基本上该函数比较2个数字(注释掉的比较函数与它下面的三元组相同).如何在同一辅助函数中比较多个值?我知道我可以创建一堆更多的辅助函数并逐个比较所有数据,但我确定这是一个更好的方法.这是模板的样子:

meteor ×10
javascript ×3
meteor-blaze ×3
chart.js ×1
charts ×1
d3.js ×1
django ×1
function ×1
highcharts ×1
node.js ×1
sails.js ×1
spacebars ×1