【发布时间】:2014-07-11 08:20:05
【问题描述】:
好吧,我放弃了!我需要一些帮助。我花了很长时间阅读所有在 S/O 上被问到的类似问题,但没有什么能解决我的问题。 我正在尝试将工厂添加到我的 angularFire 应用程序中。
我收到“未捕获对象(匿名函数)”错误 - 通过 Chrome 检查器,我确定了更具体的错误信息:https://docs.angularjs.org/error/$injector/nomod?p0=ngLocale%22
这是我的 HTML 脚本信息:
<script src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.18/angular.js"></script>
<script src="js/angular-route.js"></script>
<script src="js/app.js"></script>
<script src="js/controllers.js"></script>
<script src="js/factories.js"></script>
<script src='https://cdn.firebase.com/js/client/1.0.17/firebase.js'></script>
<script src='https://cdn.firebase.com/libs/angularfire/0.7.1/angularfire.min.js'></script>
这是我的 controller.js:
legalmvc.controller('FormCtrl','FBRetrieve', function FormCtrl($scope, $location, FBRetrieve, $firebase) {
var url = 'https://legalcitator.firebaseio.com';
var fireRef = new Firebase(url);
$scope.addCase = function () {
$scope.FireBaseCases = new Firebase('https://legalcitator.firebaseio.com/case');
$scope.caseData = {};
var newAuthor = $scope.newAuthor;
var newJournal = $scope.newJournal;
var newArticleName = $scope.newArticleName;
var newYear = $scope.newYear;
if (!newAuthor.length || !newArticleName.length || !newJournal.length || newYear === null ) {
return;
}
newAuthor = $scope.newAuthor.trim();
newJournal = $scope.newJournal.trim();
newArticleName = $scope.newArticleName.trim();
var newCaseRow = $scope.FireBaseCases.child(newAuthor);
newCaseRow.set({
type: 'Case',
author: newAuthor,
journal: newJournal,
articleName: newArticleName,
year: newYear }
);
$scope.newAuthor = '';
$scope.newJournal ='';
$scope.newYear =null;
$scope.newArticleName= '';
};
});
这是我的 factory.js:
legalmvc.factory('FBRetrieve', function(type){
var biblioRef = new Firebase('https://legalcitator.firebaseio.com/'+type);
biblioRef.on('value', function(data) {
if (data.val() === null) {
return;
}
return data;
});
});
这里是 app.js
var legalmvc = angular.module('legalmvc', ['FBRetrieve','ngRoute']);
如果有人能帮我一把,我会非常感激,这东西让我得了动脉瘤!!
山姆
编辑:
问题是我试图注入我的工厂“FBRetrieve”和一个外部模块。我删除了这个,然后我面临的问题就在这段代码中
legalmvc.factory('FBRetrieve', function(type){
var biblioRef = new Firebase('https://legalcitator.firebaseio.com/'+type);
.....
您似乎无法将“type”作为参数传递给工厂函数,这将允许您在不同的 URL 上使用相同的函数。不能说我完全理解为什么。
谢谢大家!!
【问题讨论】:
-
您能否用当前代码更新您的问题,以便我可以进一步帮助您?
-
@zazou:
type在这种情况下将是您尝试注入的依赖项。如果您没有声明它,角度不知道依赖type,例如名称为type的工厂。无论如何,您最可能想做的是在您的工厂中定义一个函数,而不是将类型依赖项注入您的工厂。 -
@andreas 了不起的人。谢谢。
标签: angularjs dependencies firebase factory angularfire