2016-07-18 4 views
0

У меня есть preloader.js заводской файл, включенный в мой проект.Функция в Угловом заводе не определена

angular.module('movieSeat') 
     .factory('preloader', function($q, $rootScope) { 

В моем контроллере я впрыснуть фабрику следующим образом:

angular.module('movieSeat') 
     .controller('moviesearchCtrl', ['$scope', 'moviesearchFactory', function ($scope, moviesearchFactory, preloader) { 

Когда я пытаюсь использовать функцию preloadImages внутри контроллера натяга:

$scope.imageLocations = [ 
     "https://image.tmdb.org/t/p/w300_and_h450_bestv2//nlqFgG7jfBITl8fJHzL72jXwYLt.jpg", 
     "https://image.tmdb.org/t/p/w300_and_h450_bestv2//ghL4ub6vwbYShlqCFHpoIRwx2sm.jpg", 
     "https://image.tmdb.org/t/p/w300_and_h450_bestv2//weUSwMdQIa3NaXVzwUoIIcAi85d.jpg", 
    ]; 

    preloader.preloadImages($scope.imageLocations) 

Я получаю следующее сообщение об ошибке:

Cannot read property 'preloadImages' of undefined

Если я прокомментирую код preloader.preloadImages($scope.imageLocations), ошибка исчезла. Так что мне кажется, что инъекция фабрики preloader в моем контроллере работает нормально, но я не могу понять, почему я не могу назвать функцию preloadImages на фабрике preload.

+0

показать нам функцию preloadImages – Sajeetharan

ответ

2

В списке инъекций зависимостей есть опечатка. Вы забыли добавить preloader в список строк зависимостей.

.controller('moviesearchCtrl', ['$scope', 'moviesearchFactory', 'preloader' /*here*/, function ($scope, moviesearchFactory, preloader) { 
1

Вы должны ссылаться на ваш завод/сервис «прелоадер» в вызове контроллера следующим образом:

angular.module('movieSeat') 
     .controller('moviesearchCtrl', ['$scope', 'moviesearchFactory', 'preloader', function ($scope, moviesearchFactory, preloader) { 

}) 
Смежные вопросы