在Angular指令中使用$ timeout工作非常糟糕。基本上即使是最简单的实现也会继续抛出TypeError:number不是函数错误。
我已经做了一些研究,因为我的生活无法弄清楚出了什么问题。
$timeout(function(){
console.log('$timeout called');
}, 500);
我只是假设$ timeout需要延迟函数,除非我不正确地阅读文档,否则没有任何意义。
https://docs.angularjs.org/api/ng/service/ $超时
提前致谢。
除了指令中的$ timeout实现之外,还删除了所有内容。
(function (window, angular, undefined) {
'use strict';
angular.module('bento.numberinput', ['bento.services'])
.factory('$helper',[
function(){
// code here
}
])
.directive('bentoNumberInput', [
'$helper',
function ($helper) {
return {
restrict : 'A',
require : '?ngModel',
replace : false,
transclude: true,
link: function($scope, $element, $attrs, $controller, $timeout){
$timeout(function(){
console.log('$timeout called');
}, 500);
}
};
}]);
})(window, window.angular);
答案 0 :(得分:3)
$ timeout需要在顶部注入,就像你的$ helper一样,由指令名称注入到函数中,因为你正在使用数组形式
.directive('bentoNumberInput', [
'$helper', '$timeout',
function ($helper, $timeout) {
return {
restrict : 'A',
require : '?ngModel',
replace : false,
transclude: true,
link: function($scope, $element, $attrs, $controller){
$timeout(function(){
console.log('$timeout called');
}, 500);
}
};
}]);