流星:发布动态请求的项目范围
Meteor: publish dynamically requested range of items
我有超过5000+条记录的庞大收藏。我希望能够一次查看 10 条记录。如何以这种方式动态发布数据?
到目前为止,我已经尝试过:
我的server.js
文件:
Meteor.methods({
publishSongs : function (first, last) {
Meteor.publish('adminSongs', function() {
return Songs.find({}, {
skip : first,
limit : last,
sort : {
date : -1
}
});
});
}
});
我的client.js
文件:
Template.admin.events({
'click #previous' : function() {
updateSession(-10);
publishSong();
},
'click #next' : function() {
updateSession(10);
publishSong();
}
});
Template.admin.onCreated(function() {
Session.setDefault('limit', {
first : 0,
last : 10
});
publishSong()
})
function publishSong() {
Meteor.call(
'publishSong',
Session.get('limit').first,
Session.get('limit').last
);
}
function updateSession(value) {
Session.set('limit', {
first: Session.get('limit').first + value,
last: Session.get('limit').last + value,
});
}
服务器正在打印此错误消息:
Ignoring duplicate publish named 'adminSongs'
似乎我使用错误的出版物,可以使用一些指导。
看起来你从来没有更新过你的Session.get('limit')。 您需要更新,然后按下一个/上一个,否则您将始终获得相同的记录。 您还需要更改发布的方式:
Template.admin.events({
'click #previous' : function() {
updateSession(-10);
},
'click #next' : function() {
updateSession(10);
}
});
Template.admin.onCreated(function() {
Session.setDefault('limit', {
first : 0,
last : 10
});
Template.instance().autorun( function() {
Template.instance().subscribe('adminSongs', Session.get('limit').first, Session.get('limit').last);
});
});
function updateSession(value) {
Session.set('limit', {
first: Session.get('limit').first + value,
last: Session.get('limit').last + value,
});
}
我假设根据您的代码,您已经定义了一个帮助程序来返回可用的歌曲。 上面的代码使你有一个订阅,并且该订阅将在会话变量更改时随时更新。
您的服务器代码也需要更新:
Meteor.publish('adminSongs', function(first, last) {
return Songs.find({}, {
skip : first,
limit : last,
sort : {
date : -1
}
});
});
可以在 Meteor.Method 之外。
相关文章:
- 正在将数据主题添加到所有项目
- 动态地改变“”的URL;添加新项目”;链接使用javascript/jquery
- 如何检查管道中未定义的项目
- ajax请求的顺序总是不同的
- Meteor如何接收HTTP请求
- 如何请求确认删除检查表项目
- 来自 HTML/js 项目中的 .dll / .aspx 文件的 API 请求
- 流星:发布动态请求的项目范围
- 使用 $httpBackend、Jasmine 测试$http请求中特定标头的角度项目服务
- 使用amchartsphp-mysql请求示例项目
- Jquery Ajax请求返回cakeHP项目中禁止的(403)
- 请求.cookie vs文档.django项目中的Cookie
- 为什么这个(请求)模块不工作在我的项目
- Rails4 -对项目控制器的AJAX请求
- 如何发送一个ajax请求,当一个项目被选中的"选择"通过vue-resource访问vjs
- 在rails上通过ajax请求获取项目
- Firebase项目导致“认证/网络请求失败”;登录错误
- 如何使用请求模块使用id获取特定项目
- 使用 jQuery (AJAX) 过滤项目 - 请求以错误的顺序完成
- 自动完成ajax请求只有当项目从以前的ajax请求数据不匹配