通用导航开发(逻辑层)
来自CloudWiki
视图层
在nav/index.js中添加如下内容:
'use strict' require('./index.css'); var _mm = require('util/mm.js'); var nav = { init : function() { this.bindEvent(); this.loadUserInfo(); this.loadCartCount(); return this; }, bindEvent : function() { //登录点击事件 $('.js-login').click(function(){ _mm.doLogin(); }); //注册点击事件 $('.js-register').click(function(){ window.location.href = './register.html'; }); //退出点击事件 }, loadUserInfo : function(){ }, loadCartCount : function(){ } }; module.exports = nav.init();
服务层
service/user-service.js:
'use strict'; var _mm = require('util/mm.js'); var _user ={ //检查登录状态 checkLogin : function(resolve,reject){ _mm.request({ url: _mm.getServerUrl('/user/get_user_info.do'), method:'POST', success : resolve, error : reject }); }, logout : function(resolve,reject){ _mm.request({ //登出 url: _mm.getServerUrl('/user/logout.do'), method:'POST', success : resolve, error : reject }); } } module.exports = _user;
service/cart-service.js:
'use strict'; var _mm = require('util/mm.js'); var _cart ={ //获取购物车数量 getCartCount : function(resolve,reject){ _mm.request({ //登出 url: _mm.getServerUrl('/user/get_cart_product_count.do'), success : resolve, error : reject }); } } module.exports = _cart;
视图层调用服务层
在nav/index.js调用user-service和cart-service:
'use strict' require('./index.css'); var _mm = require('util/mm.js'); var _user = require('service/user-service.js'); var _cart = require('service/cart-service.js'); var nav = { init : function() { this.bindEvent(); this.loadUserInfo(); this.loadCartCount(); return this; }, bindEvent : function() { //登录点击事件 $('.js-login').click(function(){ _mm.doLogin(); }); //注册点击事件 $('.js-register').click(function(){ window.location.href = './register.html'; }); //退出点击事件 $('.js-logout').click(function(){ _user.logout(function(res){ window.location.reload(); },function(errMsg){ _mm.errorTips(errMsg); }); }); }, //加载用户信息 loadUserInfo : function(){ _user.checkLogin(function(res){ $('.user.not-login').hide().siblings('.user.login').show(). .find('.username').text(res.username); },function(errMsg){ // _mm.errorTips(errMsg); }); }, //加载购物车数量 loadCartCount : function(){ _cart.getCartCount(function(res){ $('.nav .cart-count').text(res || 0); },function(errMsg){ $('.nav .cart-count').text(0); // _mm.errorTips(errMsg); }); } }; module.exports = nav.init();