`
Ad853076601
  • 浏览: 2485 次
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

party_bid第二张卡片要点总结

阅读更多

Party_bid第二张卡片【活动报名】

        要实现第二张卡片需要用到一个发短信的函数,在做这张卡片的时候,我们需要先引用一个sms的js文件,里面有一些接受和发短信的函数,主要在控制台用来模拟实现收发短信的功能。在使用之前一定要记得在index.html上引用,下面就来总结一下第二张卡片的各种要点。

 1.报名页面的按钮控制

       (1).开始和结束的状态切换

         第二张卡片的报名页面相较于第一张卡片多了一个按钮控制,主要用于实现活动的报名和结束。页面按钮的初始状态为“开始”,当你点击“开始”之后,按钮变为“结束”,如果再点击一下就会弹出提示窗口,询问:“是否结束报名?”。点击“是”,按钮初始化变为“开始”,点击“否”,按钮不变。html代码如下:

<button>ng-switch-when=false>结束</button>
<button>ng-switch-when=true>开始</button>

 在controller里面写下读取ng-switch的$scope,当ng-switch为true为开始状态,为false为结束状态。js代码如下:

//controlloer
$scope.button_states=Sign_up.State_switch($routeParams.activity,false);//读取按钮状态

 value对应的需要切换的状态(true或false)。model里面实现函数功能:

 

Sign_up.State_switch=function(activity_name,value){  //点击开始,完成开始或结束状态切换函数
    var action=Create.get_Action_information();
    var states= _.find(action,function(list){
        return list.activity==activity_name;
    });
    var index = _.indexOf(action, states);
    action[index].states = value;
    localStorage['Action_information'] = JSON.stringify(action);
};
 

 

     (2)读取报名这信息并更新显示

          只需要从localstroage存储的数组对象里面查找到对应的活动所在的对象就可以显示出来了,js代码(读取的同时还能动态刷新页面,能即使更新你的报名信息,不需要重新加载页面)。

 $scope.refresh = function (){
            $scope.Messages =Sign_up.get_click_information($routeParams.activity);
            $scope.nums = $scope.Messages.length;
        };
 $scope.refresh();

       html上面显示(用 ng-repeat遍历Messages数组并逐个显示):

 <li class=" clearfix btn-default" ng-repeat="messages in Messages">
            <h3 style="height: 30px">姓名:  {{messages.message}}</h3>
            <p>电话号码:{{messages.phone}}</p>
 </li>

 (3)正在进行的活动底色变黄色

在这里我定义了一个css样式,通过读取数组中报名活动的状态来处理。

 

.status{
    background: yellow !important;
}

 

然后读取数组里面“活动一”等的“status”来给活动列表对应的活动名上色。

(4)“开始”或“结束”按钮的变灰控制

第二张卡片要求活动有活动正在进行时,进入其他活动的报名页面,活动状态的按钮变灰色不可用。变灰用ng-disabled处理,这在第一张卡片已经提到。

 

//controller 
$scope.button_states=Sign_up.Judge_available($routeParams.activity); //获取活动按钮状态
//model
Sign_up.Judge_available=function(activity_name){  //获取并返回当前点击活动的available      
    var action=Create.get_Action_information();
    var state= _.find(action,function(list){
        return list.activity==activity_name;
    });
    return state.available;
};
 html中的按钮控制:

 

 

<button  ng-disabled="{{button_states}}" ng-switch-when=false>开始</button>
<button  ng-disabled="{{button_states}}"  ng-switch-when=true>结束</button>

 

button_states通过conroller与对应活动的available属性绑定在一起 ,不同的活动available是不同的。

2.短信接受处理和数据存储 

    (1)接受短信并存储对应的信息

       报名信息一般是通过sms .js里面的函数来接受并储存的,所以这些功能都需要在sms里面实现。成功接收报名信息需要2点条件:第一点:只要当报名页面的按钮状态为结束即报名已经开始时才能接收到短信;第二点:发送报名信息必须要遵守相应的格式即“BM+名字”,BM不限制大小写,允许有空格。下面是判断信息是否合格的js代码:

 var messages=json_message.messages[0].message.replace(/\s/g,""); //读取报名者的名字并处理空格部分。
     if (messages.search(/bm/i)==0) { //格式正确即进入下一步验证
             var Status=Judge_Ongoing_action();  //读取活动进行的状态
               if (Status == true) {
                return "对不起,活动报名已结束';
           }
            if(Status == false){  //进入数据存储部分
                  ..........
        }
}

     (2)报名信息的存储

      报名信息的存储是一件至关重要的事情,你的存储形式关系到你的代码质量以及可读性,在之前我是分散存储的,以至于后面做第三张卡片的时候数据的存取特别费劲,所以后来修改了存储结构,采用数组对象的方式存储。

存储形式如下:

 js代码:   sms.js里面实现逻辑调用:

 

var Message = new Sign_up(activity_name,message); //sms.js里面实例化对象
         return "恭喜你,报名成功";
          Message.storage_sms();    // 调用储存函数存储数据
}
 model里面实现函数的存储功能:

 

 

Sign_up.prototype.storage_sms=function() {       //model里面的存储函数
  var sms_information =  JSON.parse(ocalStorage['Activity_smsinformation'] || '[ ]');
  var list = _.findWhere(sms_information,{'activity':this.activity});//查找进行活动所在对象
  list.information.unshift(this.information);
  localStorage['Activity_smsinformation'] = JSON.stringify(sms_information);
}
    (3)报名号码重复判断

 

在活动已经有信息存储成功之后,就需要判断有没有相同的号码再次报名,如果有给出相应提示:“号码重复”。

 

 function Phone_judgment(){
     return  _.findWhere(list.information,{'phone':json_message.messages[0].phone})
}
if (Phone_judgment()) {    //查询数组发现存在相应号码,给与提示
     return '号码重复,请输入正确的报名信息';
} ;
 3.underscore的引入

 

underscore三一个javaScript实用库,提供了一整套函数式变成有用的实用功能,但没有扩展任何javaScript的内置对象,能有效的简化代码和逻辑结构。网上提供了许多了资源可供下载,也有中文档的,第三张卡也要用到了。
以上就算第二张卡片的需求以及知识要点总结了。
  • 大小: 8.6 KB
  • 大小: 5.6 KB
分享到:
评论

相关推荐

    uid_score_bid.dat

    数据格式 uid_score_bid 如 dingdanglbh,4.0 ,25862578 Luna-cat,5.0 ,25862578 aiyung,5.0 ,25862578

    case9_bid.rar_PSO_PSO power_PSO 潮流_case9_pso power flow

    标题中的"case9_bid.rar_PSO_PSO power_PSO 潮流_case9_pso power flow"揭示了这个压缩包文件包含的是一个关于电力系统潮流计算的案例,使用了粒子群优化(PSO, Particle Swarm Optimization)算法。PSO是一种基于...

    crc16-CCITT.rar_ccctt.5com_ccctt3bid_ccctt9. bid_crc16 ccitt ver

    在计算CRC时,数据被看作是二进制多项式的系数,与生成多项式进行模2除法运算。生成多项式G(x)决定了CRC码的长度和特性,这里的G(x)有16位,所以产生的CRC校验和也是16位。 CRC-16 CCITT的计算过程可以分为以下步骤...

    EURUSD_1 Min_Bid_2003.05.04_2019.02.02.zip

    欧美1分钟历史数据,2003年5月到2019年2月,MT4EA回测好用。

    基于JavaScript的Java_Bid招标项目前端设计源码

    该招标项目前端设计源码采用JavaScript编写,包含280个文件,涵盖177个JavaScript文件、26个CSS文件、24个HTML文件、22个Java文件以及少量地图、JSON、图像、XML等文件。整个项目旨在打造一个功能完善、界面美观的...

    mc_bid

    2. **多渠道**:在mc_bid策略中,多渠道意味着广告主可以在不同的平台、网站、应用或者媒体类型上展示广告,例如社交媒体、搜索引擎、视频平台等。每个渠道都有其独特的用户群体和行为特征,通过多渠道投放,广告主...

    Repaso_Clases_Objetos_call_aplly_bid_22_02_2021

    标题 "Repaso_Clases_Objetos_call_aplly_bid_22_02_2021" 暗示这是一个关于回顾类与对象、`call` 和 `apply` 方法以及可能涉及到的 JavaScript 语言特性的教程或复习资料。描述部分的信息较为简单,与标题相同,...

    去噪代码matlab-PGBL_BID:PGBL_BID的Matlab代码

    去噪代码 matlab

    bid0-lid64-steam.game_steamzc9_2.0.0.2702.exe.file

    bid0-lid64-steam.game_steamzc9_2.0.0.2702.exe.file

    bid0-lid0-steam游戏管家_steambdth01_1.0.0.1487@1prw2r@gog.exe

    bid0-lid0-steam游戏管家_steambdth01_1.0.0.1487@1prw2r@gog.exe

    backup_1000821v1001400000.zip

    总结起来,这个“backup_1000821v1001400000.zip”压缩包可能包含了一个陌陌应用或系统的备份数据,其中`verify.json`和`config.json`文件提供了备份验证和应用配置信息,而`verify.sign`和`verify.signature`则保证...

    Bid Documents - Toyota Hilux Fx_pdf_

    【标题】"Bid Documents - Toyota Hilux Fx_pdf_" 暗示了这是一个与丰田Hilux FX车型相关的招标文件,格式为PDF。在IT领域,PDF(Portable Document Format)是一种广泛使用的文档格式,用于保存内容,确保在不同...

    bid_shift_reg.rar_plus

    标题“bid_shift_reg.rar_plus”暗示我们关注的焦点是一个与数字电路设计相关的项目,特别是使用VHDL(Very High-Speed Integrated Circuit Hardware Description Language)编写的双向移位寄存器。在电子工程领域,...

    bid0-lid64-steam.game_steamzc_2.0.0.2242.exe

    bid0-lid64-steam.game_steamzc_2.0.0.2242.exe

    bid格式文件电子标书阅读器.zip

    bid格式招投标文件阅读器,可以打开浏览、管理电子招标文件,如果打不开标书文件,请按下面步骤检查:1、请查看招标文件(.bid文件)是否下载完全,请用IE下载工具下载;2、查看IE浏览器版本,如果版本低于IE8,低于IE...

    ocds_bid_extension:允许出价统计信息和详细的出价信息被表示

    出价统计信息和详细信息 作为签约过程一部分而...bids.details数组用于提供一个或多个Bid对象,每个对象代表收到的唯一出价。 bids.statistics数组用于表示有关投标和投标者数量的关键统计信息。 数组中的每个条目都

    Bid Documents - Service Pick-up_OntheUp_tantakpins_

    标题中的“Bid Documents - Service Pick-up_OntheUp_tantakpins_”暗示这是一份关于服务接洽的投标文档,其中可能包含了与"OntheUp"和"tantakpins"两个关键词相关的服务流程或项目信息。"OntheUp"可能是项目、服务...

    马里奥matlab代码-Class-adapted-BID:一种基于即插即用的适应类盲图像去模糊方法

    [1]和[2]中的适用于类的BID方法的MATLAB DEMO。 该方法基于即插即用(PnP)框架。 MAIN BID函数:Main_BID_PnP.m 演示脚本:Demo_BID_PnP.m%========================================== ========================...

    matlab 电力系统潮流计算程序 9节点改进算法算例

    `quadratic_bid_ninebus.m`可能涉及了二次出价(Quadratic Bidding)的概念,这是电力市场中一种价格-数量关系的表示方式,其中发电或负荷的成本随着出力的增加而呈二次函数变化。在这个程序中,它可能被用来模拟...

    Framework Manager使用手册.doc

    2. **创建新项目** - 在初始界面,点击 "Create a new project" 链接,输入项目名称和选择存储位置,然后点击 "OK"。 3. **选择语言** - 默认选择中文,点击 "OK" 继续。 4. **选择元数据来源** - 在 "Metadata...

Global site tag (gtag.js) - Google Analytics