2014-12-09 2 views
1

이고, 현재 열린 모달입니다. 버튼의 사용자가 클릭 모달를 종료 할 때, 그것은 호출TypeError 가져 오는 중 : 정의되지 않은 함수가 내 사이트의 AngularJS

$scope.hideModal = function(modalId) { 
    angular.element(modalId).hide(); 
    DatabaseService.updateDB(); 
}; 

DatabaseService 데이터베이스

var _updateDashboardInterstitialPromoDbService = function(){ 
//code to update the database 
} 

나는 실행에 대한 읽기 만드는 방법/변경을 포함하는 별도의 .js 클래스입니다 내 사이트는 모달가 성공적으로 종료,하지만 난 내 콘솔에서 오류를 참조하십시오

TypeError: undefined is not a function at h.$scope.hideModal

어떻게 성공적으로 내 데이터베이스를 업데이트하는 함수를 호출하는이 형식 오류를 해결하는 방법은 무엇입니까?

은 여기 내 ModalCtrl.js

'use strict'; 
var DashboardCtrl = 
[ 
    '$scope', 
    'DashboardInterstitialPromoService', 
    function ($scope, DashboardInterstitialPromoService) { 
     $scope.hideModal = function(modalId) { 
     angular.element(modalId).hide(); 
     DatabaseService.updateDB(); 
    }; 
]; 

의 여기 내 DatabaseService.js이다 : 당신은 당신의 컨트롤러 DatabaseService을 포함하지 않은

'use strict'; 
var databaseService = angular.module('database.service', ['ngResource']); 
databaseService.factory('DatabaseService', 
[ 
    function() { 
    var _updateDB = function(){ 
     //stuff to update db 
    }; 
    return {updateDB: _updateDB}; 
}]); 
+0

무엇이'DatabaseService'입니까? 그리고 그것을 당신의 컨트롤러에 어떻게 가져오고 있습니까? – Phil

+0

DatabaseService는 완전히 별개의 .js 파일입니다. 내 컨트롤러 인 MainCtrl.js에 DatabaseService.js가 삽입되었습니다. 그래서 그것은 다음과 같습니다 : var MainCtrl = [ 'DatabaseService', function (DatabaseService) { – user3339360

+0

그래서 등록 된 공장/서비스입니까? 당신은 정말로 당신의 질문에 더 많은 코드를 추가해야 할 것입니다. 'DatabaseService'와 그 메소드'updateDB'를 정의하는 곳을 보여줍니다. 컨트롤러에 주입하는 방법 표시 – Phil

답변

2

. 그것은 다음과 같이 보일 것입니다 :

'use strict'; 
var DashboardCtrl = 
[ 
    '$scope', 
    'DashboardInterstitialPromoService', 
    'DatabaseService', 
    function ($scope, DashboardInterstitialPromoService,DatabaseService) { 
     $scope.hideModal = function(modalId) { 
     angular.element(modalId).hide(); 
     DatabaseService.updateDB(); 
    }; 
]; 
관련 문제