【发布时间】:2014-12-09 16:29:15
【问题描述】:
我正在尝试将我的 Firebase 数据记录到控制台。但我不断收到undefined is not a function 的错误。完整错误如下:
TypeError: undefined is not a function
at Object.childAdded (http://localhost:9000/scripts/services/ProviderService.js:11:22)
at new <anonymous> (http://localhost:9000/scripts/controllers/main.js:118:19)
这是我的代码目前的样子:
ProviderService.js
angular.module('outcomesApp').service('ProviderService', function(FBURL, $q, $firebase) {
var providerRef = new Firebase(FBURL).child('providers');
var fireProvider = $firebase(providerRef).$asArray();
return {
childAdded: function childAdded(cb) {
fireProvider.$on('child_added', function(data) {
console.log(data);
});
},
...
main.js
app.controller('MainCtrl', function ($scope, $filter, $timeout, $firebase, FBURL, ProviderService) {
ProviderService.childAdded(function(addedChild) {
$scope.providers.push(addedChild);
});
...
此行出现错误:fireProvider.$on('child_added', function(data) {
【问题讨论】:
-
我不确定这是您在
.service中返回函数的方式。 -
@Blazemonger 好吧,它在
ProviderService中定义,我已将其注入我的MainCtrl... -
乍一看,
fireProvider.$on好像不是一个函数。你能确认一下吗? -
@Mutahhir 我该如何确认?我一直在按照教程执行此操作,他们已将
providerRef.on(有效)更改为fireProvider.$on(引发错误)。 -
只需在 childAdded 函数上添加断点,然后使用浏览器开发工具控制台并输入
fireProvider.$on和fireProvider.on。结果会让你知道。
标签: javascript angularjs firebase angularfire