2016-12-20 5 views
0

Firebaseデータベースからデータを取得できますが、ページ上のボタンまたは入力フィールドをクリックするまで、スコープは更新されません。私はそれがAngularJSのものだと仮定していますが、私はそれを理解できません。FirebaseデータベースとAngularJS - ボタンクリック/アクション後のロード結果

ここFirebaseからデータを読み取るために、私の機能です:

var userId = firebase.auth().currentUser.uid; 

    database.ref('/users/' + userId).on('value', function(snapshot) { 

    console.log(snapshot.val().user); 
    console.log(snapshot.val().weight); 
    console.log(snapshot.val().updated); 

    $scope.displayName = snapshot.val().user; 
    }); 

console.log結果は罰金であり、scope.displayNameは大丈夫ですが、スコープ自体が、私はボタンをクリックした後まで更新されませんし、私はそれをしたいですページの読み込みを更新する(database.refが実行されるとすぐに)。

結合:

<p>{{displayName}}</p> 
+0

スコープが.on()関数の内側にあるからです。それはスコープを変更する前に値の変更を探しています。 –

答えて

0

は、あなたのHTMLコード内の "のdisplayName" に結合する双方向を作成します。これにより、初期値が表示され、値が変更されると変更されます。

HTMLはどのように見えますか?

+0

これは既に

{{displayName}}

を使用してバインドされていますが、ボタンをクリックした後でも表示されます。 –

+0

コントローラー内のfirebase idに基づいてdisplayNameを設定する必要があります。 –

0

$ scope.applyを使用して修正できました。

関連する問題