2014-07-11 2 views
1

확인 전 포기 해요! 이걸 좀 도와 줘. S/O에서 묻는 비슷한 질문을 모두 읽은 지 오랜 시간을 보냈습니다. 문제를 해결하는 데 도움이되지 못했습니다. angularFire 응용 프로그램에 팩토리를 추가하려고합니다.잡히지 않는 객체 익명 함수 각도 JS

나는 'catch되지 않은 객체 (익명 함수)'오류 얻고있다 - 좀 더 구체적인 오류 정보를 확인 한 크롬 관리자를 통해이 : https://docs.angularjs.org/error/ $ 인젝터/nomod P0 = ngLocale % 22 여기

내 HTML 스크립트 정보? :

: 여기
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입니다 : 여기
<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입니다 6,
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); 

..... 

이 코드에 있었다 URL 이유를 정확히 이해한다고 말할 수는 없습니다.

감사합니다 !!

+0

질문을 현재 코드로 업데이트하여 더 잘 도와 줄 수 있습니까? –

+0

@zazou :'type'은이 문맥에서 여러분이 주입하려고하는 의존성이 될 것입니다. 각도를 선언하지 않은 경우 angle은 종속성'type'을 알지 못합니다. 이름이'type' 인 팩토리 어쨌든 당신이 가장하고자하는 것은 당신의 공장에 타입 의존성을 주입시키지 않는 당신의 팩토리에 대한 함수를 정의하는 것이다. – Andreas

+0

@andreas 놀라운 사람. 고맙습니다 . – zazou

답변

1

imho 문제가있는 곳 : var legalmvc = angular.module('legalmvc', ['FBRetrieve','ngRoute']);FBRetrieve 항목을 제거하십시오. 그것은 당신의 공장 인 외부 모듈이 아닙니다.

당신은 대부분 사용하고 싶었 :

var legalmvc = angular.module('legalmvc', ['firebase','ngRoute']); 

을 그리고 당신은 $firebase 대신에 새로운 객체 new Firebase을 만드는 주입한다,이 뒤에있는 근거는 여기에 설명 : https://docs.angularjs.org/guide/unit-testing

+0

감사합니다. 내가 WB에 언급 한 것처럼 나는 다른 문제를 겪었습니다. FBRetrieve가 올바르게 주입/정의되지 않았 음을 나타내는 오류입니다. 내가 시도하고 문제를 해결하기 위해 내 컨트롤러 서명을 변경 : "legalmvc.controller ('FormCtrl', ["$ 범위 ","FBRetrieve ", 기능 ($ 범위, FBRetrieve) {.."- 어떤 아이디어? 정말 당신의 도움을 주셔서 감사합니다 :) – zazou

1

당신은 당신의 공장을 주입하지 말아야 팩토리로서의 모듈 생성은 이미 알고있는 모듈에 등록됩니다.

내가 틀렸다고 정정하되 모듈 선언은 다른 모듈의 주입 만 허용합니다.

코드에서 모듈 생성시 FBRetrieve 삽입 만 제거하면됩니다. 그것은됩니다 : 컨트롤러를 만들 때 당신의 공장과 컨트롤러로

var legalmvc = angular.module('legalmvc', ['ngRoute']); 

가 동일한 모듈에있는, 그것을 해결됩니다.당신의 공장은 다른 모듈에 있었다면

, 당신은 할 것이다 :

var factoryModule = angular.module("factoryModule"); 
factoryModule.factory('FBRetrieve', function(type){ 
    ... 
} 

var legalmvc = angular.module('legalmvc',['factoryModule', 'ngRoute']); 
legalmvc.controller('controller',['FBRetrieve', '$scope', 
    function(FBRetrieve, $scope){ 
     ... 
}]); 

는 도움이되기를 바랍니다.

+0

대단히 감사합니다, 고마워요! @ Andreas. 불행히도 다른 오류가 발생합니다. "https://docs.angularjs.org/error/$injector/unpr?p0=typeProvider%20%3C-%20type%20%3C-%20FBRetrieve" "오류 : [$ injector : unpr] 알 수없는 공급자 : typeProvider <- type <- FBRetrieve "입니다. 이것은 내가 "종속성이 올바르게 정의되고 철자가 올바른지 확인합니다"라고 제안합니다. 다시 한번 공장이 올바르게 정의되었다고 느껴질 때 붙어 있습니다. 내 컨트롤러 서명을 다음과 같이 변경했습니다. legalmvc.controller ('FormCtrl', [ "$ scope", "FBRetrieve", function ($ scope, FBRetrieve) { 이거 괜찮습니까? – zazou

관련 문제