Javascript 如何将返回的Firebase数据设置为AngularJS中的$scope变量?
我想做什么: 我想在我的主页上输出book节点中的所有书籍。我需要的是一个包含book节点中所有书籍的对象数组,这样我就可以使用AngularJs中的ng repeat指令循环它们。在下面的代码中,当我控制台记录数据时,我得到一个objects对象,它不能与ng repeat一起使用。我遇到的另一个问题是,当我试图将$scope.allBooks变量输出到页面上时,什么也没有出现。有人能帮我吗 使用Javascript SDK而不是AngularfireJavascript 如何将返回的Firebase数据设置为AngularJS中的$scope变量?,javascript,angularjs,firebase,firebase-realtime-database,angularfire,Javascript,Angularjs,Firebase,Firebase Realtime Database,Angularfire,我想做什么: 我想在我的主页上输出book节点中的所有书籍。我需要的是一个包含book节点中所有书籍的对象数组,这样我就可以使用AngularJs中的ng repeat指令循环它们。在下面的代码中,当我控制台记录数据时,我得到一个objects对象,它不能与ng repeat一起使用。我遇到的另一个问题是,当我试图将$scope.allBooks变量输出到页面上时,什么也没有出现。有人能帮我吗 使用Javascript SDK而不是Angularfire 如果您不想使用angularfire,
如果您不想使用angularfire,则需要让angularfire知道如何运行更新
// Main Controller
firebase.database().ref('books').on('value', function(snapshot) {
var data = snapshot.val();
$scope.allBooks = data;
console.log(data);
$scope.$apply();
});
只需添加
$scope.$apply()
即可让angular知道如何更新。如果不想使用angularfire,则需要让angular知道如何运行更新
// Main Controller
firebase.database().ref('books').on('value', function(snapshot) {
var data = snapshot.val();
$scope.allBooks = data;
console.log(data);
$scope.$apply();
});
只需添加
$scope.$apply()
就可以让angular知道如何更新。您完全可以在具有正确语法的对象上使用具有ng repeat
的对象。这一点在报告中作了解释
例如:
<div ng-repeat="(key, value) in myObj"> ... </div>
您当然可以在具有正确语法的对象上使用带有
ng repeat
的对象。这一点在报告中作了解释
例如:
<div ng-repeat="(key, value) in myObj"> ... </div>
非常感谢@vzsgThanks很多@vzsg