列表筛选
来源:7-6 列表筛选功能
qq_盲区行者_0
2017-11-19
下面有5个问题,望老师能给解答,感谢!
<a href="?ct=pxjg"><span class="{% ifequal category 'pxjg' %}active2{% endifequal %}">培训机构</span></a>
问题1:这个ifequal里面的category是后台传过来的,同时它也是不是我们前台点击a标签后传给后端的ct呐?这里好晕啊
问题2: 后面的 'pxjg' 又是取的哪个值? 这里混乱了,老师帮缕下思路吧。
<a href="?order_by=&price=all"><span class="{% ifequal city_id '' %}active2"{% endifequal %}>全部</span></a>
问题3:这个city_id为空的意思是不是用户没有点击a标签,所以没有传给后端数据,后端默认是空字符串,所以这里这样判断呐?我大体了解了一下问题3的整体思路,但是还不是很透彻,比如为什么要用后端传来的数据和空字符串对比,它自己是不是空字符串它自己不知道吗,老师帮缕下思路吧,虽然知道代码要这样写,但是为什么这样写不太明白,相信我要是把这个弄透彻了,前后端交互这个坎也能前进一大步。
<a href="?city={{ city_id }}"><span class="{% ifequal category '' %}active2"{% endifequal %}">全部</span></a>
问题4:上面为了让帅选类别的时候不也把city的选择带上,用了?city={{ city_id }},就是说把city也传给后端,{{ city_id }}是后端传给前端的数据,由于点类别筛选前就已经点击了城市帅选,因此这个{{ city_id }}里是由数据的,不会每次都是空,是这样理解的吗,老师?
问题5: 在我们点击筛选的城市或者类别的时候,页面是都刷新的,我们还要在a标签中加入&把别的类别筛选也放进来,这样多了的话很玛法,轻微老师建议用ajex异步请求可以解决这个问题吗,另还可以用什么解决这个问题,用vus.js框架吗?
1回答
-
bobby
2017-11-21
目前看来你是对template的机制存在疑惑, 应该是你把前端和模板弄混淆了, 没有搞清楚前端和后台模板之间的区别, template是用来生成html的模板, 前端也就是浏览器能得到的是后端通过网络传输给浏览器的最终html但是一个html的内容在不同的商品下实际上模板是一样的, 只是不同的商品需要动态填充数据到html模板中去, 这个好像 "{a} say hello to {b}".format(a="bobby" ,b="盲区行者" ), 你可以把template理解为复杂版的字符串格式化, 所以template中你能看到很多后端语法, 但是不同的语法是根据不同的框架来的, 比如django, jinja等等不同的框架模板语法都不一样, 这些都是后端来写的, 拿你第一个问题来理解
<a href="?ct=pxjg"><span class="{% ifequal category 'pxjg' %}active2{% endifequal %}">培训机构</span></a>
这里你可以把django的template中的html文件理解为"{a} say hello to {b}" 这个模板, category 就是(a="bobby" ,b="盲区行者" )传递到这个模板中的变量, django模板的引擎就是执行"{a} say hello to {b}".format(a="bobby" ,b="盲区行者" )这个语句生成最终的html并返回给浏览器, 所以如果你的category为空 那么最终的字符串就是 <a href="?ct=pxjg"><span class="">培训机构</span></a> 如果不为空就会给浏览器返回<a href="?ct=pxjg"><span class="active2">培训机构</span></a>剩下的事情就是属于前端的知识点了, 不知道这样你理解到没有。 其他的问题都是这个思路。
00
相似问题