2016-04-28 2 views
1

Эй, ребята, у меня есть небольшая проблема, которая, по-моему, не видит проблемы. Im создает угловое приложение и im получает ошибку, указанную в заголовке вопроса. Ive впрыснул $timeout в контроллер, но я все еще получаю ошибку с этим битом кода. Может кто-нибудь скажет мне, где я могу ошибиться?

веселит

(function() { 
'use strict'; 
angular 
    .module('my.module') 
    .controller('NewSearchController', NewSearchController); 

NewSearchController.$inject = ['$rootScope', '$scope', '$location','UserService', 
    'SearchService', '$window', '$controller', '$mdDialog', 'ModalService', '$routeParams', '$timeout']; 


/** 
* @namespace ContactController 
*/ 

function NewSearchController($rootScope, $scope, $location, UserService, SearchService, $window, $controller, $mdDialog, $routeParams, $timeout) 

код Timeout:

var timerMax = false; 
    $scope.$watch(NewSearchController.searchObject.maxDayRate, function(){ 
     if(timerMax) { 
     $timeout.cancel(timerMax); 
     } 
     timerMax= $timeout(function() { 
     NewSearchController.updateSearchFilters(); 
     }, 5000); 
    }); 
+0

Пожалуйста, попробуйте заполнить все образцы кода. Вероятно, ваша ошибка связана с тем, как вы вводите '$ timeout', но не видите все, что я просто угадываю. – Duncan

+0

отредактировал мой вопрос, чтобы показать, как он вводится. –

+0

добавил мой ответ, объяснив, где вы ошибались. – Duncan

ответ

2

Проблема заключается в вашей инъекции: «ModalService» указан как инъецируемый, но не один из параметров, поэтому угловой вводят «ModalService», а значения, которые вы получаете для параметров позже в списке, ошибочны.

Если вы используете что-то вроде gulp для создания своего приложения, используйте gulp-ng-annotate для автоматического создания списка инъекций. Таким образом, это не пойдет не так, и вам никогда не придется беспокоиться об этом.

+0

приветствует это может быть случай, когда я смотрю на код для долгого. плохо проверить это и принять ответ, если он исправляет это благодаря свежей паре глаз: P –

+0

Кажется, что работа примет ваш ответ, когда истечет вопрос таймера (кто знал, что stackoverflow заставил вас ждать ответов acceot) –

0
'$mdDialog', 'ModalService', '$routeParams', '$timeout'] 


$mdDialog, $routeParams, $timeout 

эти два матча ДНТ Измените его на

$mdDialog,ModalService, $routeParams, $timeout 
0

Вы ввели $ timeout в позицию 11-й позиции в контроллере, но в функции он находится на 10-й позиции, так как вы пропустили функцию ModalService в функции. Так что из-за ошибки. Вам нужно ввести и добавить зависимости в том же положении, иначе это не сработает.