流星集合不会在刷新时加载
meteor collections don't load on refresh
出于某种奇怪的原因,我根本无法在本地复制,meteor 在刷新页面时不会加载任何集合,但它们在从状态过渡到状态时工作得很好。 我已经在集合中添加了一个 onready 和 onerror 函数,但它们实际上都没有在刷新时运行。
前面的这个问题似乎解决了问题。 我无法像他那样解决问题,因为显然 Angular 的 UI 路由器不尊重 Waiton 和数据。 因此,该链接对我来说没有多大用处。 几天来我一直在尝试解决这个问题,但一无所获。 提前感谢您的帮助。
我确定我在这里发布了太多代码,但我宁愿全面。
集合/会议.js
Meetings = new Mongo.Collection('meetings');
Meetings.allow({
insert: function (userId, doc) {
return userId && doc.owner === userId;
},
update: function (userId, doc, fields, modifier) {
return userId && doc.owner === userId;
},
remove: function (userId, doc) {
return userId && doc.owner === userId;
}
});
Meetings.before.insert(function(userId, doc) {
doc.created_at = new Date().getTime();
doc.owner = userId;
doc.private = true;
});
Meetings.before.update(function(userId, doc, fieldNames, modifier, options) {
modifier.$set = modifier.$set || {};
modifier.$set.updatedAt = new Date().getTime();
});
出版物/会议.js
Meteor.publish("meetings", function () {
return Meetings.find({});
});
会议控制器.js
function meetingCtrl($scope, $location, $reactive, $http) {
const vm = this;
vm.me = Meteor.userId();
vm.lastWeek = moment().add(-1, 'weeks').unix();
$reactive(vm).attach($scope);
vm.subscribe('meetings', () => [], {
onReady: function () { console.log("onReady", arguments); },
onError: function () { console.log("onError", arguments); }
});
vm.helpers({
meetings: () => Meetings.find(
{$and: [
{created_at: {$gte: this.getReactively('lastWeek')}},
{owner: this.getReactively('me')}
]})
});
索引.ng.html
<div ng-repeat="meeting in vm.meetings" class="meeting">
{{meeting.name}}
</div>
路由器.js
.state('meetings', {
url: '/meetings',
controller: 'meetingCtrl',
controllerAs: 'vm',
templateUrl: baseUrl + 'meetings/' + template,
resolve: {
user: ($auth) => {
return $auth.requireUser();
}
}
})
事实证明,您绝对可以通过路由器解决此问题,使用以下方法:
user: ($auth) => {
...
},
meetings: ['$q', ($q) => {
var deferred = $q.defer();
Meteor.subscribe('meetings', {
onReady: deferred.resolve,
onStop: deferred.reject
});
return deferred.promise;
}]
相关文章:
- 使用php脚本验证访问者的年龄,并在不刷新的情况下根据结果加载iframe
- Progressbar计时器,仅在页面刷新时重新加载
- 重新加载charkick pie_chart而不刷新页面
- cookie更改时自动重新加载(自动刷新)html页面
- 无法使用javascript插件在首次运行时加载实际图像大小(图像在刷新后加载)
- 如果页面加载时间超过 10 秒,如何刷新页面
- 页面刷新后重新加载 ajax 检索到的数据
- JQuery AJAX - 如何使用方法 GET 调用刷新/重新加载页面
- HTML 不加载 CSS ,刷新后一切正常.同样在移动设备上,它在首次加载时不起作用
- X 可编辑刷新加载数据源
- Javascript - 检测刷新 - 加载和卸载 - 你能用它们来检测刷新吗?
- Safari在服务器端的刷新/加载前不运行回调函数(调用客户端代码)
- 仅在插入或更新新数据时自动刷新/加载数据
- 如何判断一个Angularjs页面是通过刷新加载的还是通过链接导航的
- 使用jQuery选项卡刷新加载到iframe中的html
- 如何设置滚动到顶部刷新/加载?(只支持AngularJs或Js,不支持Jquery)
- 流星全页刷新加载更多按钮(铁路由器)
- Jquery移动刷新加载地图API v3
- 我怎样才能制作一个“;循环一次”;在每次刷新/加载页面时播放GIF动画背景
- 如何在页面刷新/加载时刷新验证码图像