party_입찰 신청 총결산

5200 단어 part
1. 아날로그 문자 보내기
sms.js:
var native_accessor = {
    send_sms: function (phone, message) {
        native_access.send_sms({"receivers": [
            {"name": 'name', "phone": phone}
        ]}, {"message_content": message});
    },
    receive_message: function (json_message) {
        if (typeof this.process_received_message == 'function') {
            this.process_received_message(json_message);
        }
    },

    process_received_message: function (json_message) {
        
    }
};

function notify_message_received(message_json) {
    native_accessor.receive_message(message_json);
};

console에서:notify_message_received({"메시지": [{"create_date": "Tue Jan 15 15:28:44 그리니치 표준시 + 0800 2013", "메시지": "bm1", "phone": "181717833"}]})
 
2. 메시지 처리: ① 빈칸으로 가기:
var message = json_message.messages[0].message.replace(/\s/g, "");

② bm로 시작하는지 판단:
모두 대문자 판단 키워드로 전환:
var message_keywordjson_message.messages[0].message.substr(0,2).toUpperCase();

문자 내용의 0번째 문자열부터 두 문자를 대문자로 바꾸어 키워드로 삼다
 
3. 정규 표현식:
\s:space, 공백 +: 하나 이상의 ^: 시작, ^\s, 공백으로 시작 $: 끝,\s$, 공백으로 끝 |: 또는/g: 글로벌, 전역 리플레이스 () 대체
i:큰 것을 구분하지 않는다
 
4.   console.log(인쇄할 코드,'로고')
쓴 코드가 실행되는지 검사하는 데 사용됩니다.복구 문자를 시뮬레이션할 수 있습니다.
console.log('축하! 신청 성공'); 
 
5. 신청 중인 이벤트에 대응하는 이벤트 목록의 색깔은 노란색이며,class의 이름으로 해결할 수 있습니다.이벤트 목록 보이기haml에서 바인딩
class="{{activity.status}}"  

 
activity의status는start,unStart,end가 있습니다.인덱스에서css의 쓰기 스타일:
 
.start{  
    background: yellow !important
}

//꼭 주의하세요!important, 원래의 css에 색 제어가 있을 수 있습니다. 이때 이 문장을 추가하지 않으면 색이 표시되지 않을 수 있습니다
 
 
인덱스에서haml에 이 스타일을 도입합니다.
%link(rel="stylesheet" type="test/css" href="/css/index.css")

 
6. 신청 문자를 받고 양식에 적합하다고 판단하여 정보를 로컬에 저장한 후 신청 페이지에서 신청자의 정보를 즉시 업데이트해야 한다
 
새로 고칠 페이지의haml에 id를 설정합니다:
#sign_up_page_id.ng-scope

sms.js에서 새로 고칠 함수를 정의합니다. 교체할 그룹 정보를 새로 고칩니다.
function sign_up_page_refresh() {
    var refresh_page = document.getElementById('sign_up_page_id')
    if (refresh_page) {
        var scope = angular.element(refresh_page).scope();
        scope.$apply(function () {
            scope.get_apply_peoples();
        })
    }
};

문자를 받은 후 해당 js의 함수를 호출합니다.
 
 
 $scope.get_apply_peoples = function () {
        var activity_names = JSON.parse(localStorage.getItem('activity_names'));
        var activity = _.find(activity_names, function (activity) {
            return activity.name == localStorage.current_signing_up_page_name;
        })
        if (activity != undefined) {
            $scope.apply_peoples = activity.apply_people;
            $scope.counter = activity.apply_people.length + ' ';
        }
}

 
 
7.  _.find
 
list에서 항목별로 검색하면predicate 교체 함수 진가를 통해 검출된 첫 번째 원소 값을 되돌려줍니다. 교체기에 전달되지 않으면underfind로 되돌려줍니다.일치하는 요소를 찾으면 함수가 즉시 되돌아와list 전체를 훑어보지 않습니다.
function get_current_activity_bid() {
    var current_activity_bids = get_current_activity_bids();
    return  _.find(current_activity_bids, function (bid) {
        return bid.bid_name == localStorage.getItem('current_bid_sign_up_page_name');
    })
};

 
 
8.  _filter
 
리스트의 모든 값을 훑어보고predicate 진가를 통해 검출된 모든 원소 값을 되돌려줍니다.
 
function get_current_activity_bids() {
    var bids = JSON.parse(localStorage.getItem('bids')) || [];
    var current_activity_bids = null;
    current_activity_bids = _.filter(bids, function (bid) {
        return bid.active_name == localStorage.current_signing_up_page_name;
    })
    return current_activity_bids;
};

 
9.  _.map
 
변환 함수 (iterator 교체기) 를 통해list의 모든 값을 새로운 그룹에 비추십시오.
function save_apply_people(apply_people) {
    var current_activity = get_activity();
    var activities = JSON.parse(localStorage.getItem('activity_names'));
    _.map(activities, function (activity) {
        if (activity.name == current_activity.name) {
            activity.apply_people = apply_people;
        }
    })
    localStorage.setItem("activity_names", JSON.stringify(activities));
    sign_up_page_refresh();
};

언더스코어에 대한 구체적인 내용은 보세요http://www.css88.com/doc/underscore/
 
 
 
 
 

좋은 웹페이지 즐겨찾기