- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我收集了一些简单的文档,例如 {title:"some title", paths:{first:"sport",second:"football"}}
,并且有一些类别,例如
[{
name: "sport",
children: {[
{
name: "football",
},
{
name: "basketball
}
]}
},
{
//....
}
///...
]
问题:当我在“/sport/football”和“/sport/basketball”等 2 条路线之间切换 1 秒时,我会看到来自另一条路线的帖子,如下所示:
1) "/sport/football"
(I see)
- post1
- post2
2) go to "/sport/basketball"
(for <1 second I see)
- post1
- post2
- post3
- post4
3)"/sport/basketball"
(after <1 second I see)
- post3
- post4
/// Code
Template.third_level.onCreated(function(){
var self = this;
self.autorun(function() {
var second_route = Session.get("current_route").params.name_second;
var first_route = Session.get("current_route").params.name;;
self.subscribe('posts_levels', first_route, second_route);
});
});
Template.third_level.helpers({
third_level:function(){
return Posts.find();
},
});
<template name="third_level">
{{#if Template.subscriptionsReady}}
{{#each third_level}}
{{> third_category}}
{{/each}}
{{/if}}
</template>
Tracker.autorun(function() {
FlowRouter.watchPathChange();
var currentContext = FlowRouter.current().path;
Session.set("current_route",{
path: currentContext,
params: FlowRouter.current().params
});
});
Meteor.publish("posts_levels", function(route_one, route_two){
check(route_one , String);
check(route_two , String);
return Posts.find({
routes: { $in : [{
first: route_one,
second: route_two
}]}
});
});
最佳答案
它的工作原理与设计的一样
注意:DDP 为每次插入/删除/更新发送一条自己的消息,而不是作为单个消息!
因此,您应该在客户端上执行查询,而不是假设和希望您的集合仅包含您需要的数据并通过 Collection.find()
显示整个集合,因此您只需显示你想要的..
所以代替:
third_level:function(){
return Posts.find();
},
这样做
third_level:function(){
// get stuff from session, like in publication
var first = Session.get // ..
var second = Session.get // ..
return Posts.find({routes: { $in : [{
first: first,
second: second
}]}});
},
这样您将只看到您需要的项目,并且集合可以更新其方式,而不会产生奇怪的副作用。
另一种解决方法:假设您知道,订阅准备就绪后,您可以公开整个集合。好的,这样做:
third_level:function() {
if (Template.instance().subscriptionsReady())
return Posts.find();
},
这样,您仅在订阅准备就绪时才返回,这意味着在某些时间内您查看的内容将为空!
关于javascript - MeteorJS 集合的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34233322/
我有个疑问。不确定这是否可能,也没有找到明确的答案。 是否可以向服务器变量添加“观察者”,以便当值更改时,我可以更新 View (客户端)? 假设我有一个 var counter = 0和一个超时函数
有没有办法获取所有当前连接用户的列表?我检查了许多聊天室教程,但没有一个提供这种方法。甚至有可能吗,如果有的话,人们将如何以 Meteor 的方式正确地实现它? 最佳答案 我已经设法找到一种方法来做到
可以通过在 session 变量更改时重新渲染然后直接操作 DOM 来渲染不同的模板并将它们放置在容器模板中。然而,这感觉不像 Meteor 的方式。是否有处理 DOM 更新的惯用方法? 客户端.js
我需要将文件上传到 meteor ,对其进行一些图像处理(必要时进行图像转换,从图像生成缩略图),然后将其存储在外部图像存储服务器(s3)中。这应该尽可能快。 您对 nodejs 图像处理库有什么建议
我想知道meteorJs如何管理大数据集的同步。 假设我们绑定(bind)了 find 查询的结果,它返回一个 1000 到 10.000 条记录之间的变量数,每个记录有 10 个字段,find 查询
在方法中调用时,“Meteor.loginWithPassword”函数似乎不起作用。 我想使用自动表单创建我的登录表单,因此我创建了一个回调方法,该方法在用户提交登录表单后被调用。表单以正确的方式被
我喜欢在远程服务器上通过 SSH 进行开发——在这种情况下,有没有办法运行和访问meteor 的调试服务器? 它监听 http://localhost://3000 ,不在 http://exampl
就是在“Template”的“return”的值中进行“拼接” 示例: Template.create.values = function () { return [{ 'value1':
我一直收到 undefined is not a function for the line Institutions.insert({$set: {admin: Meteor.userId(), t
我正在使用 MeteorJS 1.0.2.1 填充应用程序。首先,这是我的 searchResults 模板: Search Results
我正在开发 meteor 中的第一个项目,我遇到了一些小问题(我认为这很容易做到),但我找不到正确的方法来正确完成它。这是简化的代码,我想将一些对象推送到辅助数组。 Template.courses.
意外重复: Should I add "use strict" to my meteor files? 据我了解,use strict 是 JavaScript 中的良好做法。 我应该在构建 Mete
嘿伙计们,我正在尝试使默认用户包的用户配置文件具有 user.profile.friendList 属性,这将只是我存储的friendList集合的引用外键用户的 friend 。不过,这表明 und
嘿,大家好,我在使用meteorJS时遇到了很多问题,因为当我订阅服务器端的出版物时,我似乎无法访问任何客户端的属性。我有一个为我的用户提供的“每日事件”集合,我将尝试将其发布到客户端。但由于某种原因
我尝试将 Meteor.publish (服务器端)与此查询一起使用: return Meteor.users.find({_id:{$ne:this.userId}}); 当我在客户端使用 Mete
我收集了一些简单的文档,例如 {title:"some title", paths:{first:"sport",second:"football"}} ,并且有一些类别,例如 [{ name:
这是我第一个使用 Meteor 的项目,我是一个重度新手。需要帮助。三个问题。我希望当我按下编辑按钮时将注意力集中在任务的文本上,并且我可以更改它......如下所示: Edit 之后我可以编辑该li
我有一个包含 3 个字段的集合,每个字段都有数字“1”作为其中的数据。我想计算集合中所有 3 个字段中存在多少个“1”。我有这样的代码: return collection.find({}, {fie
下面这个函数运行得很好。但是如何更改忘记密码电子邮件的发件人参数。 sendForgotpasswordmail() { let options = {}; options.email
我是 Meteor 的新手,我想知道处理依赖关系管理的最佳方法是什么。到目前为止,我所做的所有与 Node 相关的事情都已通过 require 方法引入了依赖项。 var myCoolModule =
我是一名优秀的程序员,十分优秀!