第三、四张卡小结
第三张卡总结
1、第三张卡与第二张卡接收短信的机制不一样,第二张卡是通过“bm+姓名”这种方式实现的对短信的收取,而第三张卡与第二张卡不同之处在于第三张卡使用的是“jj+竞价”这种方式实现的。
var message = json_message.messages[0].message.replace(/\s/g, ""); message.search(/jj/i)
2、第三张卡当中由于嵌套了多个for循环,导致了循环后的内存for循环可能调用不到,因此需要使用_.find来进行循环嵌套,_.find该集合能够实现从查找到数组中获取并只获取其中的一个对象,为了方便能够理解,下面举例说明:
var evens = _.find([1, 2, 3, 4, 5, 6], function(num){ return num > 2 ; }); => [2] 通过return num>2这个条件,返回数组中符合的第一个值
3、在点击“结束”按钮来实现对竞价是否继续进行处理,通过使用confirm来实现这一操作,在点击后,可以出现弹框,点击“是”后变结束,在此通过设置竞价状态来实现当前活动和竞价的背景颜色,进行的confirm操作代码如下:
$scope.end=function(){ if(confirm("确认要结束本轮的竞价吗?")){ }括号中时点击“是”后的动作
4、由于在“价格列表”页面上需要对价格进行比较,并从中选取最小的并没有重复的价格作为竞价成功时的价格,因而需要使用_.sortBy这种集合来实现对价格的比较,用升序进行返回,迭代器也可以用字符串的属性来进行比较,举例说明如下:
_.sortBy([5, 4, 6, 3, 1, 2], function(num){ return Math.sin(num); }); => [1,2,3,4,5]对数组中的对象进行比较,返回升序数组
5、第四张卡中需要向弹框中传入数据,并设定弹窗停留的时间,并且可以手动控制来关闭弹窗。在页面上需要输入以下内容:
<div id="ModalSuccess" class="modal fade"> <div class="modal-dialog"> <div class="modal-header"></div> <button data-dismiss="modal" aria-hidden="true" class="close">×</button> <div class="modal-body"></div> <div class="center"></div> <h1>{{bider}} {{phone}} ¥{{price}} 竞价成功</h1>
其中设置id是可以让用户能够在控制器中调用,上面的button按钮是用来手动点击“关闭”按钮来实现手动关闭。在控制中的代码如下:
$timeout(function () { $('#ModalSuccess').modal("show"); $timeout(function () { $('#ModalSuccess').modal('hide'); }, 3000) })
其中$timeout是在function方法中调入的,不然会提示$timeout为undifined,modal("show")为显示,modal("hide")为隐藏,其中3000为3000毫秒,即3秒的意思。
6、在“价格统计”页面上需要实现价格的计数功能(即可以统计出相同价格中,竞价人数有多少),这个功能需要使用_.countBy这个集合来实现,实现了计数功能后,需要对其进行分组输出,因此需要有_.map来实现对其的转换。;两种集合的代码形式如下:
var count = _.countBy(activity,function(activity){ return activity.price }) var num = _.map(count,function(value,key){ return{"price":key,"count":value} }) return num
_.countBy事把一个数组分组并返回每一组内对象个数,_.map规定了输出在页面上数组的格式。
7、在第四张卡中需要实现“竞价结果“的输出,并在footer中实现,因而需要通过比较功能来实现这一内容,只需通过升序排序后来实现,在本总结的第4点介绍了升序这一操作。