party_bidプロジェクトのイベントエントリー(board 2)
3381 ワード
1.機能紹介:
board 2部で実現する機能は、イベントの作成後、イベントの申し込みページに入り、携帯電話で指定番号にメールを送ることでイベントの申し込みを実現する.メールを送信後、指定携帯電話はメールを受信して判断し、申し込み開始前と終了後に受信メールは申し込み失敗の提示に戻り、申し込み開始後、受信メールは条件に合致すると判断し、データをローカルに保存し、申し込み成功の提示を送信する.
2.ページに残っている問題:
angularjsでは、ページジャンプを実現するのは$navigateである.go()ですが、実行中にいくつかの問題が発生します.
上記のコードでは、if文の条件が真である場合、次のジャンプ文が実行するが、新しいジャンプページには前のページの要素が残り、要素を審査することで、2つのページが1つのページに結合することが分かった.ジャンプ後、手動でページをリフレッシュし、残りの要素が消え、ページが正常に表示されます.しかし、関数を呼び出して実行するページジャンプ文は正常に実行する.
解決策:上記のコードを1つの関数に組み込み、ページの最後に手動で関数を呼び出す.改善後、ページジャンプは正常に表示されます.
3.他のイベントがエントリーされている場合、そのイベントはイベントリストの下の色が黄色で、イベントリストページの作成ボタンはクリックできない状態で、他のイベントを表示し、イベントエントリーページに入った後、エントリーを開始することができず、スタートボタンはクリックできません.
解決方法:オブジェクトの作成時にアクティビティの開始または進行中またはアクティビティの終了をマークするプロパティがあります.開始ボタンと終了ボタンをクリックすると、この属性は対応する値に変わります.
ページでは背景色の属性を変数に設定、変数の値が空の場合は変色せず、値が「yellow」の場合は背景が黄色になる.
%div()
%ul(
class=
"list-style-1 "
style=
"height:100% ")
%li(
ng-repeat=
"list in newList")
%a(
style=
"background:{{list.signuping}}"
id=
"lists"
ng-tap=
"goto_signUpPage(list)")
%h3() {{list.name}}
4.応募メールを受信してフォーマットに合致すると判断し、ローカルに情報を保存した後、応募ページですぐに応募者の情報を更新する必要があります.
解決方法:
反復する配列情報をリフレッシュするリフレッシュ関数を定義する.
メールを受信した後、この関数を呼び出します.
board 2部で実現する機能は、イベントの作成後、イベントの申し込みページに入り、携帯電話で指定番号にメールを送ることでイベントの申し込みを実現する.メールを送信後、指定携帯電話はメールを受信して判断し、申し込み開始前と終了後に受信メールは申し込み失敗の提示に戻り、申し込み開始後、受信メールは条件に合致すると判断し、データをローカルに保存し、申し込み成功の提示を送信する.
2.ページに残っている問題:
angularjsでは、ページジャンプを実現するのは$navigateである.go()ですが、実行中にいくつかの問題が発生します.
function ActivityListController($scope,$navigate)
{
if(!localStorage.localEventsLists)
{
$navigate.go("/creat_activity", "none");
}
}
上記のコードでは、if文の条件が真である場合、次のジャンプ文が実行するが、新しいジャンプページには前のページの要素が残り、要素を審査することで、2つのページが1つのページに結合することが分かった.ジャンプ後、手動でページをリフレッシュし、残りの要素が消え、ページが正常に表示されます.しかし、関数を呼び出して実行するページジャンプ文は正常に実行する.
解決策:上記のコードを1つの関数に組み込み、ページの最後に手動で関数を呼び出す.改善後、ページジャンプは正常に表示されます.
$scope.check_empty =function(){
if(!localStorage.localEventsLists)
{
$navigate.go("/creat_activity", "none");
}
return "";
}
{{check_empty()}}
3.他のイベントがエントリーされている場合、そのイベントはイベントリストの下の色が黄色で、イベントリストページの作成ボタンはクリックできない状態で、他のイベントを表示し、イベントエントリーページに入った後、エントリーを開始することができず、スタートボタンはクリックできません.
解決方法:オブジェクトの作成時にアクティビティの開始または進行中またはアクティビティの終了をマークするプロパティがあります.開始ボタンと終了ボタンをクリックすると、この属性は対応する値に変わります.
function newActivity()
{
this.name = $scope.put;
this.bid=0;
this.disabled=false;
this.signuping="";
}
ページでは背景色の属性を変数に設定、変数の値が空の場合は変色せず、値が「yellow」の場合は背景が黄色になる.
%div()
%ul(
class=
"list-style-1 "
style=
"height:100% ")
%li(
ng-repeat=
"list in newList")
%a(
style=
"background:{{list.signuping}}"
id=
"lists"
ng-tap=
"goto_signUpPage(list)")
%h3() {{list.name}}
4.応募メールを受信してフォーマットに合致すると判断し、ローカルに情報を保存した後、応募ページですぐに応募者の情報を更新する必要があります.
解決方法:
反復する配列情報をリフレッシュするリフレッシュ関数を定義する.
function bid_page_refresh() {
var bid_info = document.getElementById("price_list");
if (bid_info) {
var scope = angular.element(bid_info).scope();
scope.$apply(function () {
scope.priceList();
})
}
}
メールを受信した後、この関数を呼び出します.
if(Keyword == "BM" && JSON.parse(localStorage.getItem("list_disabled")).signuping=="yellow" && JSON.parse(localStorage.getItem("list_disabled")).bid==1 && key)
{
var person = new Person(json_message.messages[0].message.substring(2,5),json_message.messages[0].phone);
var personList = JSON.parse(localStorage.getItem("localPersonLists_"+JSON.parse(localStorage.getItem("list_disabled")).name)) || [];
personList.push(person);
localStorage.setItem("localPersonLists_"+JSON.parse(localStorage.getItem("list_disabled")).name,JSON.stringify(personList));
console.log(" !");
signup_page_refresh();
return;
}