partybid第二张卡总结
party_bid的第二张卡已经写完了,第二张卡的功能更多了,其中一个是要模拟收发短信,要引入sms.js文件,同时要在index.html里添加sms.js的路径。发送短信是用notify_message_received()模拟,在浏览器上模拟接收短信用console.log(phone, message),这样就能看到系统发出去的短信内容了。而在手机上应用时,应该注释掉console.log(phone, message),改用native_access.send_sms()。
1.对收到的短信进行处理
报名者发送过来的短信内容中包含空格,这会对之后的提取信息造成不便,所以首先要去掉空格。用
string.replace(/\s/g,"")
来处理。string是需要被处理的对象,replace()是一种方法,用来替换与正则表达式匹配的子串,而(/\s/g,"")就是一个正则表达式。正则表达式是一种在检索某个文本时,用来描述要检索的内容的模式,简单的模式可以是一个单独的字符,复杂的模式包括更多的字符,并且可以用来解析,格式检查,替换等。这里就用了替换的功能。\s是一个元字符,即有特殊含义的字符,表示空格,g是修饰符,表示进行全局匹配,而不是查到一个匹配字符就停止了。
去掉空格之后,要判断是否以bm/BM开头,同样要用到正则表达式:
string.search(/bm/i)
search()是查找方法,他有返回值,返回的是string中第一个与正则表达式相匹配的子串的起始位置,如果没有找到匹配的,则返回-1.i与g一样是修饰符,表示忽略大小写。
然后就是要提取出信息中的人名了,用到的是String的方法:
string.substring(start,stop);
substring()方法用于提取字符串中介于两个指定下标之间的字符。start表示要提取的字符串的第一个字符的位置,是必需的,stop表示比要提取的字符串的终止位置多1的位置,可以省略,如果省略的话,就表示一直取到字符串的结尾。
2.报名成功后要刷新报名页面的信息
刷新页面用到的是
angular.element(id).scope();
通过在报名页面设置ID,用angular.element(id)找到报名页面,angular.element(id).scope()用于获取报名页面的scope,然后用$apply()方法将刷新的函数包括进去:
scope.$apply(function () { scope.refresh_sign_up_info(); });
refresh_sign_up_info()是写在报名页面的 controller里面的刷新方法。
3.正在报名的活动底色是黄色的
在CSS文件里专门写一个样式:
.start { background: #ffff00 !important; }
!important是必须的,不然会被覆盖掉,无法显示。然后在活动列表的html文件里绑定一个判断的表达式:
class='{{activity_yellow(activity)}}';
在活动列表的js文件里写activity_yellow()的功能,使得如果返回值为start,那么该活动的底色为黄色。
4.弹出确认结束的对话框
用confirm()来实现弹出确认结束的对话框,如果点击确认的话,confirm()返回true,否则返回false。
if(confirm("你确认结束报名吗?")) { //你的处理语句...... }