gpt4 book ai didi

javascript - Angular JS 在 $scope 中执行函数 $timer 收到 TypeError

转载 作者:行者123 更新时间:2023-11-30 07:38:33 24 4
gpt4 key购买 nike

为什么在像下面这样的内部函数的 Angular JS 中使用 $timeout 时工作正常。

var mytimeout = $timeout(function(){
console.log("MyTimeout Executed");
},2000);
mytimeout.then(
function() {
console.log( "mytimeout resolved!", Date.now() );
},
function() {
console.log( "mytimeout rejected!", Date.now() );
}
);

但是当我将 $timer$scope 中的函数一起使用时,它不起作用,如下所示:

$scope.myFunction = function(){
console.log("MyTimeout Executed");
};

var mytimeout = $timeout($scope.myFunction(),2000);
mytimeout.then(
function() {
console.log( "mytimeout resolved!", Date.now() );
},
function() {
console.log( "mytimeout rejected!", Date.now() );
}
);

并收到此错误:

TypeError: undefined is not a function
at http://0.0.0.0:3000/assets/angular.js?body=1:14015:28
at completeOutstandingRequest (http://0.0.0.0:3000/assets/angular.js?body=1:4301:10)
at http://0.0.0.0:3000/assets/angular.js?body=1:4602:7 angular.js?body=1:9779
(anonymous function) angular.js?body=1:9779
(anonymous function) angular.js?body=1:7217
(anonymous function) angular.js?body=1:14018
completeOutstandingRequest angular.js?body=1:4301
(anonymous function) angular.js?body=1:4602

最佳答案

var mytimeout = $timeout($scope.myFunction(),2000);

这是你的问题。从 myFunction() 中删除 ()。您需要传递函数引用,而不是调用函数并获取结果(在本例中为 undefined),然后将 that 传递给 $timeout。

关于javascript - Angular JS 在 $scope 中执行函数 $timer 收到 TypeError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23847430/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com