第三张卡主要是对竞价报名和竞价短信的处理
1 创建一个新的竞价
在为某一个活动创建竞价的时候,要实现各个活动的竞价的分离
方法:在保存某一个活动的竞价的时候,先从竞价列表里找到属于该活动的竞价暂存到一个数组中,然后在保存竞价名字的时候,定义竞价的名字等于这个数组的长度+1,这样就可以将各个活动的竞价分离开
实例:
var bid_name = "竞价" + (Bid。current_bid_lists().length + 1); Bid.current_bid_lists = function () { return _.filter(Bid.get_bid(), function (bid_list) { return bid_list.activity == localStorage.current_activity; }) }/*遍历数组中的每一个元素,从中找到属于当前活动的竞价并返回*/
2 判断竞价的短信JJ后面是否为数字
方法:我在做的时候是先将JJ后面的内容提取出来,然后转换为ASCII码,再判断是数字还是字母,根据返回的布尔值判断是字母还是数字。
BidMessage.judge_number = function (json_message) { var price = json_message.messages[0].message.substr(2).replace(/\s/g, '');/*提取JJ后面的内容*/ for (var i = 0; i < price.length; i += 1) { var chr = price.charAt(i);// if (chr < 48 || chr > 57) { return true; } else { return false; } } }
3 统计当前活动当前竞价的报名人数
方法:我在做的时候先从本地数据库中竞价短信的数组里找到报名当前活动的当前竞价,放到一个数组中,这个数组的长度即为报名当前活动的当前竞价的人数
实例:
BidMessage.search_current = function () { return _.filter(BidMessage.get(), function (bid_message) { return bid_message.activity == localStorage.current_activity && bid_message.bid == localStorage.current_bid; }) } var counter=BidMessage.search_current().length; counter即为报名当前所在页面的人数
4 实现竞价报名页面的实时显示
方法:在model里面写一个刷新函数,报名成功后调用这个函数,在页面对应的JS里面写上页面要及时刷新的内容,即可实现页面的实时显示功能
实例:
model里 BidMessage.refresh_bid_sign = function () { var id_exist = document.getElementById("refresh_bid_sign"/*这是给页面绑定的ID*/) if (id_exist) { var scope = angular.element(id_exist).scope(); scope.$apply(function () { scope.refresh(); }) } }/*这个函数是在报名成功后调用的*/ 在页面对应的js里: $scope.refresh = function () { $scope.currents = BidMessage.search_current();/*实时显示报名信息*/ $scope.counter = BidMessage.search_current().length;/*统计竞价人数的刷新*/ } $scope.refresh();
5 竞价报名页面开始按钮的四种状态
竞价报名页面的开始按钮需要设置四种状态,开始、结束、不可点的开始和不可点的结束,当一个竞价的状态为结束的时候显示为不可点击的结束按钮,当该竞价的状态为开始的时候显示为结束按钮,当该竞价的状态为还未开始的状态时,如果没有其他竞价在进行显示为可以点击的开始按钮,如果有其他竞价在进行,显示为不可点击的开始按钮。
方法:用ng-switch来实现四种按钮的显示,给ng-switch定义一个变量,设置该变量为四个不同的值时显示四种不同的按钮。
实例:
在haml里用ng-swich .header-right(ng-switch='which_button') %button.btn-4(ng-switch-when='start')开始 %button.btn.btn-4(ng-switch-when='un_click_start' ng-disabled='disabled_start')开始 %button.btn-4(ng-switch-when='end')结束 %button.btn.btn-4(ng-switch-when='un_click_end' ng-disabled='disabled_end')结束
在js里写的时候,which_button="start"的时候显示可以点的开始按钮,which_button=“un_click_start”时显示不可点击的开始按钮,which_button=“end”时显示可以点击的结束按钮,which_button=“un_click_end”时显示不可点击的结束按钮。