天天看點

在yeoman下做party_bid第二張卡總結

在做第二張卡的時候,需要用到接收短信的機制,而生成工程時候,沒有生成接收短信的檔案Sms.js,是以在做短信的處理之前先引入了sms.js的檔案到自己的工程裡。

1  模拟系統回複短信

在之後要将自己的工程打包裝到模拟器上測試的時候,要在自己的工程裡引入cordova的插件,目前在頁面上測試,我用conslose.log("")來模拟系統發短信

2  頁面顯示報名人的姓名和聯系電話,姓名靠左,電話靠右

之前我做的時候姓名和電話不在一行上,一個靠左顯示一個靠右顯示,但是顯示的時候需要去掉分行,在yeoman下做的時候,修改一下haml檔案的清單顯示。

執行個體:

%li(ng-repeat="current in currents")
      .header-left
        {{current.name}}
      .header-right
        {{current.phone}}      

清單内左邊顯示姓名,右邊顯示電話,分行就沒有了。

3  提取BM并判斷是否要儲存短信

先将短信中的前兩個字元提取出來,并将其轉換為大寫的字母,如果是BM才對該短信進行處理,否則不接收

var get_bm=json_message.messages[0].message.substr(0, 2).toUpperCase();      

toUpperCase(),可以實作将字母轉換為大寫

4  報名短信的存儲

之前在做party_bid的時候,在存儲報名短信的時候在Sms.js裡面定義了一個數組和數組的屬性,在yeoman工程下做的時候,建立了一個對短信處理的model,在model裡實作對短信的存取和處理,

執行個體:

儲存報名短信
function Message(activity, name, phone) {
    this.activity = activity;
    this.name = name;
    this.phone = phone;
}
Message.save_message = function (json_message) {
    var messages = JSON.parse(localStorage.getItem('messages')) || [];
    var message = new Message(localStorage.starting_activity, Message.received_name(json_message), Message.received_phone(json_message));
    messages.push(message);
    localStorage.setItem('messages', JSON.stringify(messages));
}      

5  正在報名的活動對應的底色為黃色

在index.CSS的檔案中寫了一個樣式,當傳回值為start的時候即為黃色

.start{
    background: yellow !important;
}      

在haml裡給清單設定一個class  

%li(class="{{activity_yellow(activity.activity)}}")      

在js裡面寫對應的控制

$scope.activity_yellow = function (activity) {
            if (Activity.background_yellow(activity)) {
                return "start";
            }
        }      

Activity.background_yellow(activity)是從本地資料庫中找到正在進行報名的活動并傳回。

6  點選結束彈出二次提醒對話框

利用confrim(),