Meteor:当页面刷新或其他页面位置时,如何保留dom操作
Meteor: How do you preserve dom manipulations when page refreshes or another page location?
我有一个无限滚动,可以添加新元素(链接),当我导航到链接并在浏览器中返回时,我会返回到结果的第一页,而不是之前滚动操作添加的扩展元素。
你做错了!需要用流星的方式。
您只需使用Deps.autorun()
并更改页码Session.set('currentPage');
即可增加客户端的文档数量
main.js
//when scrollbar reaches end of page, just change the 'currentPage' session variable to 'grow' the list template
if ($(window).scrollTop() + $(window).height() == $(document).height()) {
var nowPage = Session.get('pageNumber');
Session.set('pageNumber', parseInt(nowPage) + 1);
e.stopImmediatePropagation();
}
客户端/订阅.js
Deps.autorun(function(){
Meteor.subscribe('huge-list', Session.get('currentPage'); //whenever currentPage changes, so will your subscription if you set up your publish() on the server side;
});
server/publication.js
Meteor.publish('huge-list', function(page){ //when session changes on client, this changes
return Requests.find({}, {limit:page});
});
唯一的方法是保存滚动的状态,然后在Meteor渲染模板后重新应用DOM操作。
例如,类似这样的东西:
Template.my_template.rendered = function() {
$('#my-scrolling-element').scroll(function(e) {scrollPosition = e.target.scrollTop()})
if(scrollPosition) {
$('#my-scrolling-element').scrollTo(scrollPosition);
}
}
相关文章:
- 分派点击事件并保留击键修饰符
- 如何使用jquery强制一个单词更改大小写等以保留品牌
- 提交后保留下拉选择的值
- 刷新后保留对网页的更改
- 在mvc应用程序中,在回发时保留最初隐藏的文本框的隐藏或可见状态
- Flash Uploadify在调用我的MVC控制器时没有保留会话/授权
- 当设置addFromAutocompleteOnly时,剩余文本将保留在输入字段中
- 使用递归属性迭代保留属性结构
- Jquery html() 和保留元素名称
- 如何将字符串拆分为字符,但在javascript中保留空格
- 离开页面导航后保留文本区域内容
- 如何在使用JavaScript或jQuery刷新父页面后保留iframe-src
- Javascript和RegEx:拆分并保留分隔符
- 如何生成保留标点符号的简单字谜
- 如何设置类型化对象的属性,同时保留它's类型
- 关闭谷歌地图中推荐的骑行道路,但保留专用自行车道
- 在IndexedDB中保留空间
- 如何使网络应用程序保留信息
- 调试器;[错误]194:11:标识符是一个保留字
- Javascript代码Cookie保留/保留替代Css