問題タブ [angularfire]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
angularjs - AngularJS サービスでの Firebase の AngularFire
AngularJS で Firebase を処理する最善の方法は、確実にサービス内から行う必要があるため、アプリ全体のすべてのコントローラーで利用できます。
私はそれを機能させることができません!...angularFire(new Firebase(url))
サービスのスコープにバインドできることを期待して、最初に を使用してみましたが、Angular はそれができない$watch
と不平を言います。
そこで、代わりに angularFireCollection を次のように試しました。
ただし、angularFireCollection はメソッドなどのロードを含むオブジェクトです。コントローラー $scope にバインドすると、ガベージが発生します。また、使用しようとする前にFirebase関数を呼び出すことができないと不平を言います(例Error: Firebase.push failed: second argument must be a valid function.
)...誰かが私が間違っている場所について何か考えを持っていますか?
このプランカーを見る
angularjs - AngularFire アプリが最初に読み込まれるときにモデルをクリアする方法は?
私は AngularFire が初めてで、単純な概念を理解しようとしています。http://angularfire.com/tutorial/index.html#gettingstartedにある AngularFire チュートリアルを参照すると、AngularFire を使用してプリミティブな「チャット」アプリケーションを構築する基本的な例があります。
チュートリアルは非常に明確で簡潔ですが、主なポイントが 1 つわかりません。
問題は、モデルが最初に作成され、次にモデルへの 3 ウェイ バインディングが存在するように AngularFire によるバインディング マジックがセットアップされることです。Firebase に既に保存されているデータの配列がある場合、そのデータはフェッチされて同期され、モデルはこのデータをローカルに持つようになります。
私が単に理解していないのは、コントローラーコードが実行されるときに、angularFireバインディングが配線された後にモデルを空の配列に設定すると、Firebaseデータがクリアされないのはなぜですか? ページを更新すると、基本的にデータが消去され続けるという事実を気にしないでください (私が望む動作)。
これで、$scope オブジェクトで定義された clear という名前のメソッドを呼び出す ng-click イベントをボタンに接続すると、この動作を機能させることができます。そのメソッド内にある場合は、単に $scope.messages = []; を呼び出すだけで、モデルがローカルおよびリモートでクリアされます。
しかし、なぜこれが初期化で機能しないのですか?
ヘルプはいつでも大歓迎です。
angularjs - angularfireCollection: データが完全にロードされたときを知る
私は小さな Angular Web アプリケーションを作成していますが、データのロードに関して問題が発生しました。私は Firebase をデータソースとして使用しており、良いサウンドの AngularFire プロジェクトを見つけました。ただし、データの表示方法を制御するのに問題があります。
最初に、次のようにして、通常の暗黙的な同期を使用してみました。
ビューでモデル $items を使用すると、正常に機能し、すべてのデータが表示されました。ただし、データが Firebase データ ソースから到着するときは、ビューがサポートする形式でフォーマットされていないため、データを表示する前に、データに追加の構造変更を加える必要があります。問題は、データがいつ完全に読み込まれたか分からないことです。$watch を $items に割り当てようとしましたが、呼び出されるのが早すぎました。
そこで、次に進み、代わりに angularfireCollection を使用しようとしました。
ドキュメントでは、「optionalCallbackOnInitialLoad」が何をいつ実行するかは明確ではありませんが、$items コレクションの最初の項目にアクセスしようとするとエラーがスローされます (「Uncaught TypeError: 未定義のプロパティ '0' を読み取ることができません」)。 .
ボタンを追加しようとしましたが、ボタンのクリック ハンドラーで $items の最初のアイテムの内容をログに記録しましたが、うまくいきました:
ありました!私のFirebaseからの最初のオブジェクトはエラーなしで表示されました...唯一の問題は、そこに到達するためにボタンをクリックしなければならなかったことです.
それで、すべてのデータがいつロードされたかを知り、それを $scope 変数に割り当ててビューに表示する方法を知っている人はいますか? それとも別の方法がありますか?
私のコントローラー:
私の見解:
前もって感謝します!
angularjs - Firebase の重複値はループできません
私は持っている
foos<div ng-repeat="(key, val) in foos">{{val}}</div>
が使用している場合angularFire()
私は返すDuplicates in a repeater are not allowed. Repeater: (key, val) in foos key: boolean:true
キーとして呼び出しtrue
てループできないのはなぜですか?
アップデート
これは angularFire(); です。
angularFire(firebaseRef, $scope, 'foos');
値が異なる場合にのみループします。
更新 2
問題が見つかりました。angularJS 1.1.5からの問題です
このplnkrをチェックしてください
angularjs - クライアント名を優先度にバインド
シンプルな CRUD アプリ、クライアント リスト ビューと詳細ビュー。リスト ビューをサーバー上で並べ替えたいので、クライアントの FireBase 参照に優先順位を設定する必要があります。
client.name が変更されるたびに、FireBase ref に優先順位を設定します。ただし、一覧ページに戻ると、優先度は null です。これは、名前を変更すると参照で set() が呼び出され、優先度がクリアされるために発生すると思います。
client.name に優先順位を設定する最も簡単な方法は何ですか? $timeout を使用することもできますが、client.name 以外の値が変更されると上書きされます。
angularjs - angularFireを使用してネストされた入力がバインドされているときに入力フォーカスが失われないようにする方法は?
ネストされた入力フィールドは、モデルが angularFire を使用してバインドされている場合 (ビューの再レンダリングにより) 更新時にフォーカスを失います (angularFire を使用しない場合は正常に動作します)。問題を示す詳細なプランカーを参照してください。
誰かがこの問題の回避策または修正を提案できますか?
firebase - ユーザーごとに firebase オブジェクトをクエリする
次のようなデータ構造があります。
「/farms」をクエリすると、認証されたユーザーが所有者であるファームのリストを取得したいと思います。また、ユーザーが所有者ではないファームを表示できないようにしたいと思います。
私のルールは現在次のようになっています。
.read をこのレベルに置くことで、/farms/:farmid 経由でアクセスしたときに、個々のファームへの読み取りアクセスを許可していることがわかります。そして、「.read」を「farms」レベルに移動すると、リスト全体への読み取りアクセスが許可されます。
だから私は自分のデータを再構築する必要があると思いますが、これを行う最善の方法がわかりませんか? 特定のファームにも多数の「編集者」ユーザーを追加したいので、ユーザー オブジェクトの下にファーム オブジェクトを追加したくありません。
ご協力いただきありがとうございます
javascript - angularFireCollection初期ロードコールバックを使用するには?
私はAngularサービスでFirebaseとの明示的な同期を適切に処理しようとしています。angularFireCollection を初期ロード コールバック関数で使用します (最初のクエリによって返されたデータに基づいて、追加のデータをプリロードする必要があります)。ただし、コールバック関数で取得したデータにアクセスする方法がわかりません。
上記の例では、グループ オブジェクトから実際のデータにアクセスするにはどうすればよいでしょうか?d ヒントをお寄せいただきありがとうございます。