求助:如何实现首页点击不同的分类标签,列表框动态更新相应的内容
发布于 9 年前 作者 yourlei 4339 次浏览 最后一次编辑是 8 年前 来自 问答

index.jpg 首页如上图,想要实现的功能是点击左侧不同标签,右侧显示与该标签相关的内容

网站是用node+express+mongodb做的,我对后台不太了解,不知道这个功能的实现逻辑,整个流程是怎么走的。 现在能想到的就是:点击标签,触发click事件,接下来应该怎么走,如何与后台数据库衔接上就不知道了,麻烦大家指导下,谢谢了

6 回复
  • 页面不刷新的话,用ajax异步加载就好,还有一门技术 jquery-pjax 也可以不刷新页面实现动态加载
  • 页面刷新,只需要把左边标签的标识(id/name)带到后台去查询数据库,然后在渲染到页面右边就好

两种方式:

1.后端路由,左侧不同item对应不同的地址

/home /hot /img … 点击后跳转到对应的地址。页面会重新刷新。

2.前段路由,单页应用,页面在前段渲染,实现方式有很多种,例如使用锚点做路由

/index#home /index#hot /index#image 检测锚点变化,请求数据在前段渲染页面,整个页面不会重新加载 这里实现方式有很多种

估计你想要的是第二种效果

@liygheart 嗯,我是想通过异步加载的,但是我不清楚这个过程是如何触发到后台去进行查询数据的 比如: 前端: ··· js $(’.item1’).click(function(e) { var target = $(e.target), tag = target.data(‘weekly’);

$.ajax({
	type: 'GET',
	url: '/?tag=' + tag
});

});

那后台应该是做什么样的处理,或者是什么事件触发后台执行查询的

@TakWolf 不是很明白,用锚点的话路由应该怎么写呢,首页的路由相关代码如下: ··· js // config.js app.get(’/’, Index.index);

```` js
// index.js
exports.index = function (req, res) {
	if (req.session.user) {
		var userId = req.session.user._id,
			  writeCount;		
		Article.find({author: userId}, function(err, result) {
			writeCount = result.length;
		})
	}
	Article.find({})
	       .sort({_id: -1})
				 .populate('author', 'name avatar')
				 .exec(function(err, articles) {
						res.render('index', {
							articles: articles,
							writeCount: writeCount
						});
					});
};

// index.jade

                    each item in articles
						.col-md-6.col-lg-6
							.yue-content-post
								.user-info
									a(href="/userhome/#{item.author._id}" target="_blank")
										img(src='#{item.author.avatar}').user-logo
										span.user-name #{item.author.name}
									span.post-time #{moment(item.meta.updateAt).startOf('hour').fromNow()}
								.article-title
									a(href="/post/#{item._id}" target="_blank") #{item.title}
								a.img-box(href="")
									img.img(src="/images/post-img-1.jpg")
								.post-footer
									a(href="") 
										span 阅读
										span (#{item.pv})
									a(href="") 
										span 评论

问题较多,主要是不清楚前端到后台这个过程是如何实现,还请兄弟解答,谢谢

angularjs或者react-router吧,看看。。自己写前端路由有点麻烦

@alanyang 这两个框架都没用过,angular最近才开始学的,如果用异步的话,思路应该是咋样的

回到顶部