gpt4 book ai didi

javascript - Firebase 数据库函数无法修改 angularjs 中的 $scope 变量

转载 作者:行者123 更新时间:2023-11-30 07:56:32 26 4
gpt4 key购买 nike

我有以下代码:

angular.module("MyApp", ['textAngular'])
.controller("demoController", function demoController($scope) {
$scope.content = null;
firebase.database().ref('pages/home').on('value', function(snapshot) { $scope.content = snapshot.val(); });
console.log($scope.content);
});

如您所见,我想要做的就是在访问 firebase 数据库的函数中更改 Controller 范围内的变量,以便存储特定条目的内容。然而,当尝试这样做时,变量根本不会改变。我使用“window.content”尝试过同样的事情,并尝试使用“var content;”无济于事。有什么方法可以让一个变量在一个函数内被全局访问?

编辑 - 当我运行 firebase.databse().ref 函数并使用 alert(snapshot.val());它有效并且信息显示在警报中。

最佳答案

使用$apply():

$apply() is used to execute an expression in angular from outside of the angular framework (For example from browser DOM events, setTimeout, XHR or third party libraries).

例如:

firebase.database()
.ref('pages/home')
.on('value', function(snapshot) {
$scope.$apply(function(){
$scope.content = snapshot.val();
});
});

关于javascript - Firebase 数据库函数无法修改 angularjs 中的 $scope 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38482935/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com