为什么只在我输入输入时显示内容?

时间:2015-10-02 05:19:11

标签: angularjs firebase

但只有当我在输入字段中输入内容时,它才会显示旧消息。为什么?

            myDataRef.on('child_added', function(snapshot) {
                var message = snapshot.val();
                $scope.messages.push({
                    name: message.name,
                    message: ': ' + message.text
                });
            });

        });

1 个答案:

答案 0 :(得分:1)

试试这个

myDataRef.on('child_added', function(snapshot) {
   var message = snapshot.val();
   $scope.messagessent.push({
            namesent: message.name,
            datesent: message.date,
            messagesent: ': ' + message.text
   });
   $scope.$apply();
});

这将触发摘要周期并更新范围和视图。

如果myDataRef.on('child_added'超出角度relhm,则范围和视图不会更新,因为angular确实知道范围发生了变化。因此我们需要通过使用$scope.$apply()

告诉角度来运行摘要周期

将其包装在$timeout中,(不要忘记将$timeout注入控制器)

myDataRef.on('child_added', function(snapshot) {
   $timeout(function() {
        var message = snapshot.val();
        $scope.messagessent.push({
            namesent: message.name,
            datesent: message.date,
            messagesent: ': ' + message.text
        });    
   });           
});