define(['$', 'template', 'IScroll', 'user', 'native', 'config', 'address'], function ($, template, IScroll, user, native, config, address) { function back(event) { event.preventDefault(); $(document).trigger('spa:navigate', { hash: '', pushData: { dontNeedReload: true } }); } /* * 模块结构:5部分。 * title:题目。 * content:不知道是什么,似乎从没用过。 * 以下可以当作生命周期回调,虽然并不清楚是什么时候回调的…… * init:根据上一个页面传来的pageData初始化本页数据,生成页面,绑定事件。 * beforeopen:接收上一个页面传来的数据、有需要的话重置数据 * afteropen:做一些网络请求。 * beforeclose: */ return { title: '我的', body: '', init: function (pageData, dtd) { /* this是什么? */ var $view = this; var $doc = $(document); /* 定义按钮事件。 * 为什么不是$(selector).onclick(function)呢? */ // 返回 $view.on('swipeRight', function (event) { back.call(this, event); }); $.newTouch('.back-button', function (event) { back.call(this, event); }, $view); $view.on('tapBackButton', function (event) { back.call(this, event); }); // 我的订单 $.newTouch('.btn-my-order', function (event) { event.preventDefault(); $doc.trigger('spa:navigate', { hash: 'myOrder/1', pushData: { needReload: true } }); }, $view); // 常用地址 $.newTouch('.btn-address-list', function (event) { event.preventDefault(); $doc.trigger('spa:navigate', { hash: 'addressList', pushData: { backHash: 'mine' }, callback: { /* 在addressList页面挑选之后,回到这个页面时执行的回调。 */ onSelect: function (address, station) { var addressStr = ''; if (address.address.poi) { addressStr = address.address.city + address.address.area + address.address.poi.name + address.address.detail } else { addressStr = address.address.province + address.address.city + address.address.area + address.address.detail } $('#default-address', $view).text(addressStr); } } }); }, $view); // 充值卡 $.newTouch('.btn-recharge', function (event) { event.preventDefault(); $doc.trigger('spa:navigate', { hash: 'recharge', pushData: { needReload: true } }); }, $view); // 代金券 $.newTouch('.btn-coupon', function (event) { event.preventDefault(); user.checkLogin(function () { $doc.trigger('spa:navigate', { hash: 'myCoupon' }); }); }, $view); // 帮助中心 $.newTouch('.btn-helper', function () { event.preventDefault(); $doc.trigger('spa:navigate', { hash: 'help' }); }, $view); // 关于 $.newTouch('.btn-about', function () { event.preventDefault(); $doc.trigger('spa:navigate', { hash: 'about' }); }, $view); /* 定义按钮事件结束。*/ /* 不知道什么意思。*/ dtd.resolve(); }, beforeopen: function (pageData, dtd) { dtd.resolve(); }, afteropen: function (pageData, dtd) { var $view = this; var $doc = $(document); if (pageData.pushData && pageData.pushData.needReset) { var addressStr = ''; var defaultAddress = address.defaultAddress; if (defaultAddress && defaultAddress.address && defaultAddress.address.poi) { addressStr = defaultAddress.address.city + defaultAddress.address.area + defaultAddress.address.poi.name + defaultAddress.address.detail } else if (defaultAddress && defaultAddress.address) { addressStr = defaultAddress.address.province + defaultAddress.address.city + defaultAddress.address.area + defaultAddress.address.detail } var tpl = template('mine/index', { showNavBar: !config.isWX, userName: user.name == '' ? '未登录' : user.name, userBalance: user.balance, defaultAddress: addressStr }); $('.spa-page-body', $view).html(tpl); setTimeout(function () { pageData.scroll = new IScroll('#mineScroll'); }, 500); } /* 又是这个。不知道什么玩意…… */ dtd.resolve(); }, beforeclose: function (pageData, dtd) { dtd.resolve(); } } })