从firebase获取数据后,ng-show / ng-hide值没有变化?

时间:2016-10-26 10:29:21

标签: javascript angularjs firebase firebase-realtime-database

当我从firebase接收数据时,我正在使用false更改ng-show / ng-hide值的范围。但它不会影响我视图中的任何内容。 当我再次点击但是我必须动态更新值时,范围值正在改变。 请帮我解决这个问题。

提前致谢

这是我的代码

  <script>
         var app = angular.module("myApp", []);
         app.controller("redeemCtrl", function($scope) {
         $scope.showDiv = true;
       $scope.redeemSubmit = function() {
     firebase.database().ref().once('value', function(snapshot) {
         $scope.user = snapshot.val()
         console.log('Getting Data from fire base' + JSON.stringify($scope.user));
         $scope.showDiv = false;     
      });
    }
 });
</script>

视图

 <div ng-controller="redeemCtrl">
        <div ng-show="showDiv">
            <form>
                <div>
                    <input ng-model="Coupon" type="text">
                </div>

                <div class="row">
                    <button  ng-click="redeemSubmit()"  class="btn">Submit</button>
                </div>
            </form>
        </div>
        <div class="row" ng-hide="showDiv">
            <h3>{{user}}</h3>
        </div>
    </div>

3 个答案:

答案 0 :(得分:2)

注意更改已发生的 Angular

   console.log('Getting Data from fire base' + JSON.stringify($scope.user));
   $scope.showDiv = false;
   $scope.user = $scope.Coupon;
   $scope.$apply();

答案 1 :(得分:1)

对于自定义行为,可以使用 ngClick 代替 ngSubmit

答案 2 :(得分:0)

AngularJS不知道Firebase SDK中发生的操作,它不在其上下文之外,因此您应该将包含代码的更改通知AngularJS $ $ scope()

&#13;
&#13;
T
&#13;
&#13;
&#13;