AngularJS / Firebase:$ scope数据未在视图中呈现

时间:2016-03-29 14:38:13

标签: javascript angularjs firebase

我想显示存储在Firebase数据库中的一些数据。我将数据输入示波器没有问题,但它没有显示给用户。

    var ref = new Firebase('https://URL.firebaseio.com/users');

    $scope.users = [];

    ref.once("value", function(snapshot) {
        snapshot.forEach(function(childSnapshot) {
            var dataUser = childSnapshot.val()
            dataUser.id = childSnapshot.key()
            $scope.users.push(dataUser);
        });
    });

ng-inspector Chrome扩展程序确认数据已加载到范围内。

enter image description here

我错过了什么?

感谢。

1 个答案:

答案 0 :(得分:1)

$http$setTimeout等服务在对$apply()进行异步更改时会自动为您调用$scope方法,以便更新DOM。您需要致电$scope.$apply();以触发$digest循环。

你可以这样做:

var ref = new Firebase('https://URL.firebaseio.com/users');

$scope.users = [];

ref.once("value", function(snapshot) {
    snapshot.forEach(function(childSnapshot) {
        var dataUser = childSnapshot.val()
        dataUser.id = childSnapshot.key()
        $scope.users.push(dataUser);
    });
    $scope.$apply(); //let angular know to trigger $digest loop to update the DOM.
});