使用LeanCloud JS_SDK读取电商系统的商品分类
准备在https://www.leancloud.cn上注册帐号,创建仓库,建Category表,建title字段
无限级分类建表结构建立字段parent,类型为Pointer,指向Category对象
下载JS_SDKhttps://unpkg.com/leancloud-storage@2.0.0-beta.2/dist/av-weapp.js
文档出处:https://leancloud.cn/docs/weapp.html
安装将上面的js文件保存此util目录
使用在category.js中引入
const AV = require('../../utils/av-weapp.js')
连接数据仓库,取查询所有分类
- Page({
- onLoad: function(){
- AV.init({
- appId: "SgHcsYqoLaFTG0XDMD3Gtm0I-gzGzoHsz",
- appKey: "xdv2nwjUK5waNglFoFXkQcxP",
- });
- var query = new AV.Query('Category');
- query.find().then(function (categories) {
- for (var i = 0; i < categories.length; i++) {
- var category = categories[i];
- console.log(category.attributes.title);
- }
- }).catch(function(error) {
- alert(JSON.stringify(error));
- });
- }
- })
这时控件台可以看到输出category所有分类
潮流女装 连衣裙 针织开衫 羽绒服 时尚T恤 家用电器 电视 空调
条件查询获得顶级分类- query.equalTo('parent',null);
这时控件台可以看到输出category顶级分类
潮流女装 家用电器
Pointer方式查询二级分类- // 查询父级分类下的所有子类
- var parent = AV.Object.createWithoutData('Category', '581415bf2e958a005492150b');
- query.equalTo('parent',parent);
这时控件台可以看到输出category潮流女装分类下的所有子类
- 连衣裙
- 针织开衫
- 羽绒服
- 时尚T恤
配合布局与js文件,实现分类页面
wxml:
- <view class="container">
- <!-- 侧边栏 -->
- <view class="sidebar">
- <text wx:for="{{topCategories}}" wx:key="objectId" bindtap="tapTopCategory" data-object-id="{{item.objectId}}" data-index="{{index}}" class="{{highlight[index]}}">{{item.title}}</text>
- </view>
- <!-- GridView -->
- <view class="gridview">
- <dl wx:for="{{subCategories}}" wx:key="objectId">
- <dt>
- <image src="{{item.avatar.attributes.url}}" mode="scaleToFit" />
- </dt>
- <dd>
- <text>{{item.title}}</text>
- </dd>
- </dl>
- </view>
- </view>
wxss
- /*页面背景*/
- page {
- background-color: #f3f5f7;
- }
- /*容器总体布局为左右两列*/
- .container {
- display: flex;
- flex-direction: row;
- justify-content: space-between;
- }
- /*侧边栏顶级分类给予固定宽度*/
- .sidebar {
- width: 120px;
- border-top: 1px solid #e5e5e5;
- height: 568px;
- }
- /*text块状布局独占一行*/
- .sidebar text {
- display: block;
- border: 1px solid #e5e5e5;
- border-top: 0;
- height: 40px;
- line-height: 40px;
- text-align: center;
- color: #232626;
- font-size: 14px;
- background-color: #fff;
- }
- /*hight light*/
- .sidebar text.highlight {
- background-color: #f3f5f7;
- color: #f23131;
- border-right: 0;
- }
- /*网格布局子类九宫格分布*/
- .gridview {
- width: 100%;
- background-color: #fff;
- margin-left: 5px;
- }
- /*向左流动*/
- .gridview dl {
- float: left;
- margin: 5px;
- }
- /*图片*/
- .gridview dt image {
- width: 60px;
- height: 60px;
- }
- /*文字*/
- .gridview dd text {
- color: #6c6c6c;
- font-size: 12px;
- text-align: center;
- display: block;
- line-height: 20px;
- }
js:
- const AV = require('../../utils/av-weapp.js')
- Page({
- data: {
- topCategories: [],
- subCategories: [],
- highlight:['highlight','','']
- },
- onLoad: function(){
- this.getCategory(null);
- // hard code to read default category,maybe this is a recommend category later.
- this.getCategory(AV.Object.createWithoutData('Category', '581415bf2e958a005492150b'));
- },
- tapTopCategory: function(e){
- // 拿到objectId,作为访问子类的参数
- var objectId = e.currentTarget.dataset.objectId;
- // 查询父级分类下的所有子类
- var parent = AV.Object.createWithoutData('Category', objectId);
- this.getCategory(parent);
- // 设定高亮状态
- var index = parseInt(e.currentTarget.dataset.index);
- this.setHighlight(index);
- },
- getCategory: function(parent){
- var that = this;
- var query = new AV.Query('Category');
- // 查询顶级分类,设定查询条件parent为null
- query.equalTo('parent',parent);
- query.find().then(function (categories) {
- if (parent){
- that.setData({
- subCategories: categories
- });
- }else{
- that.setData({
- topCategories: categories
- });
- }
- }).catch(function(error) {
- });
- },
- setHighlight: function(index){
- var highlight = [];
- for (var i = 0; i < this.data.topCategories; i++) {
- highlight[i] = '';
- }
- console.log(index);
- highlight[index] = 'highlight';
- this.setData({
- highlight: highlight
- });
- }
- })
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。
-
微信小程序 轮播图 swiper图片组件
2016-11-23 09:49
-
微信小程序 开发 微信开发者工具 快捷键
2016-11-23 09:49
-
微信小程序 页面跳转 传递参数
2016-11-23 09:49
-
微信小程序 如何获取时间
2016-11-23 09:49