$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)
超时代码:
var timerMax = false;
$scope.$watch(NewSearchController.searchObject.maxDayRate, function(){
if(timerMax) {
$timeout.cancel(timerMax);
}
timerMax= $timeout(function() {
NewSearchController.updateSearchFilters();
}, 5000);
});
答案 0 :(得分:2)
问题出在您的注射中:' ModalService'列为可注射但不是其中一个参数,因此角度注入' ModalService'并且稍后在列表中获得的参数值都是错误的。
如果您使用gulp之类的东西来构建您的应用程序,那么使用gulp-ng-annotate自动构建注入列表。这样它就不会出错,你永远不必担心它。
答案 1 :(得分:0)
'$mdDialog', 'ModalService', '$routeParams', '$timeout']
$mdDialog, $routeParams, $timeout
这两个dnt匹配将其更改为
$mdDialog,ModalService, $routeParams, $timeout
答案 2 :(得分:0)
你已经在控制器的第11位注入了$ timeout,但是在函数中它位于第10位,因为你在函数中错过了ModalService。所以错误只是因为这个。您需要在相同位置注入并添加依赖项,否则它将无法工作。