我收到Firebase的响应后正在尝试更新范围(我在应用程序控件部分中进行了响应),这是示例代码。PS我正在使用AngularFire,Firebase和Angularjs谢谢
var app = angular.module("sampleApp", ["firebase"]);
firebase.initializeApp(config);
app.factory("mealMacros", ["$firebaseArray",
function($firebaseArray) {
var dbRef = firebase.database();
var userId = sessionStorage.uid;
var ordersRef = firebase.database().ref('user_info/' + userId + '/orders');
return $firebaseArray(ordersRef);
}
]);
app.controller("MealCtrl", ["$scope", "mealMacros",
function($scope, mealMacros) {
// $scope.user = "Guest " + Math.round(Math.random() * 100);
//tried mealMacros.on.. didnt work
ordersRef.on('value', function(snapshot) {
var orders = snapshot.val();
// Loop and parse order ids here
for (var key in orders) {
var orderId = orders[key]['orderType'];
console.log(orderId);
$scope.products = orderId;
//code not reaching here
}
});
}
]);
ordersRef.on('value', function(snapshot) {
var orders = snapshot.val();
// Loop and parse order ids here
for (var key in orders) {
var orderId = orders[key]['orderType'];
console.log(orderId);
$scope.products = orderId;
//code not reaching here
}
});
首先,您需要确保输入数据 var orders
然后,$scope.products = orderId;
您可以在循环中设置相同的变量。也许$scope.products
是一个数组,您想在其中推送数据吗?$scope.products.push(orderId);
最后,$scope
在.on事件中设置变量,您需要$scope.$apply()
在函数返回之前进行调用。
ordersRef.on('value', function(snapshot) {
var orders = snapshot.val();
console.log(orders); // make sure there's an array here
for (var key in orders) {
var orderId = orders[key]['orderType'];
$scope.products.push(orderId);
}
$scope.$apply();
});
最后一件事,var orderId = orders[key]['orderType'];
可能无法按预期工作,具体取决于var orders
数组的结构。
您可以尝试var orderId = key.orderType;
是否不起作用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句