2016-06-25 1 views
0

私はangularjsでwebappを構築しており、firebaseを使用しています。私はgeofireを使って与えられたlatの与えられた半径の範囲内の値を返す。それは完全に動作し、半径に値があるときに私が望むものを返します。ただし、半径ゾーンに値がない場合は何も返しません。最初のページの読み込みでは、何かが約束されて返されたときに始まり、終わるスピナーがあるので、これは問題です。指定された半径に値がない場合、geofireにnull値を返す方法がありますか?半径ゾーン内にインデックスがない場合、GeoFireにnullを返すようにします。

これは、私がデータをretireveするために使用していたコードです:何かが半径ゾーンにあることを発見された場合を除き

geoQuery.on("key_entered", function(key, location, distance) { 
     console.log(key + " entered query at " + location + " (" + distance + " km from center)"); 


    console.log(key); 

     },function(error) { 
     console.log("Promise was rejected with the following error: " + error); 
     }); 
    }); 

にconsole.logは実行されません。私はそれがまだ何かを返すために必要なので、ユーザーにその地域にビジネスがないことを知らせることを知っています。どんな助けでも大歓迎です!

UPDATE:

私はそれがkey_entered 'イベントをトリガだろうと考えたが、それはこのように正方形の1で私に戻って残していなかったとしても「準備」イベントを追加しました。

var onKeyExitedRegistration = geoQuery.on("key_exited", function(key, location, distance) { 

console.log(key + "exit +" location + "(" + distance + "km from center)"); });

geoQuery.on("ready",function() { 
    console.log(key + " moved within query to " + location + " (" + distance + " km from center)"); 

});

答えて

1

key_enteredイベントは、キーがジオクエリに入力されたときにのみ発生します。したがって、キーがクエリに入力されなければ、決して実行されません。

のキーが最初にジオクエリに含まれているかどうかを確認するには、readyイベントを聞くことができます。初期データは、そう、ロードされた後、この火災:

var keysEntered = false; 
geoQuery.on("key_entered", function(key, location, distance) { 
    console.log(key + " entered query at " + location + " (" + distance + " km from center)"); 
    keysEntered = true; 
    },function(error) { 
    console.log("Promise was rejected with the following error: " + error); 
    }); 
}); 
geoQuery.on("ready", function() { 
    console.log("initial data has loaded"); 
    if (!keysEntered) { 
    console.log("There was no initial data, so there are no business in range (yet)."); 
    } 
}); 

は、より多くの情報のためAPI reference of Geofire for JavaScriptを参照してください。

+0

ありがとうございましたが、「準備ができました」イベントを実装した後も、私はまだ助けになりませんでした。私はビジネスがないことを私に知らせるいくつかの旗を取得する必要があります。 – Brennan

+0

このようなフラグは存在しないので、自分で作成する必要があります。私は例を追加しました。 –

+0

ちょうどそのようなフラグを作ろうとしましたが、 'key ready'機能で更新されたとき、 'ready'でrefelctedされていないようです。 – Brennan

関連する問題