【发布时间】:2014-12-27 04:12:18
【问题描述】:
我是 AngularJS 的新手,所以请温柔一点。
我正在尝试使用工厂 .on('value',..) 从 firebase 获取数据并将其传递给控制器。将对象 itemObj 传递给控制器似乎有问题,因为第 25 行 console.log(itemObj.name) 向我们展示了我们正在寻找的内容。
工厂:
'use strict';
angular.module('MyApp')
.factory('MenuItems', function(FIREBASE_ROOT) {
var ref = new Firebase(FIREBASE_ROOT);
var refMenu = ref.child('/menu/');
// get today's date in dd-mm-yyyy
var today = new Date();
var dd = today.getDate();
var mm = today.getMonth()+1; //January is 0!
var yyyy = today.getFullYear();
if(dd<10) { dd='0'+dd; }
if(mm<10) { mm='0'+mm; }
today = dd+'-'+mm+'-'+yyyy;
var itemObj = null;
return {
items: function() {
refMenu.child(today).on('value', function(snapshot) {
itemObj = snapshot.val();
console.log(itemObj.name);
return itemObj;
});
}
};
});
控制器:
'use strict';
angular.module('MyApp.controllers').controller('DashboardCtrl', ['$scope', '$firebase', 'FIREBASE_ROOT', 'Auth', 'User', 'MenuItems',
function($scope, $firebase, FIREBASE_ROOT, Auth, User, MenuItems) {
var ref = new Firebase(FIREBASE_ROOT);
var refCart = ref.child('/cart/');
$scope.numberItems = 0;
var user = Auth.currentUser;
$scope.item = MenuItems.items();
console.log(MenuItems.items());
}]);
【问题讨论】:
标签: javascript angularjs firebase