JavaScript   发布时间:2022-04-16  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了javascript – TypeError:$timeout不是函数大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
这里发生了什么:

我希望“取消预订”按钮在点击后有一个超时.首次点击它会更改为显示“确认取消”按钮.几秒钟后,它返回“取消预订”.

我的控制台给了我:

TypeError: $timeout is not a function

我正在使用AngularJS $timeout:

控制器:

'use strict';

module.controller('ReservationItemCtrl',['$scope','$stateParams','$RPC',function($scope,$stateParams,$RPC,$timeout) {


 ......other stuff.......
 ......other stuff.......

    $scope.toggleCancelReservation = function(reservation) {
        reservation.clickedcancel = true;
        $timeout(function(){reservation.clickedcancel = false},4000);
    };
}
]);

模板:

<button ng-show="!reservation.value.deleted && !deleted.value"
          class="btn btn-danger" 
          ng-show="canCancel(reservation)" ng-if="!reservation.clickedcancel" ng-click="toggleCancelReservation(reservation)">
    Cancel With Refund
  </button>
  <button type="button" class="btn btn-danger" ng-if="reservation.clickedcancel == true" ng-click="deleteReservation();" style="margin-top: -4px;">
    Confirm Cancellation
  </button>

我准确地在第一次点击时切换按钮然后再次点击它会正确取消/删除预订,但如果我在第一次点击后没有做任何事情,那么超时永远不会将其返回到原始按钮.在我的控制台中,我看到$timeout因某种原因不是函数?我把它包含在我的控制器中.我错过了什么吗?

解决方法

你忘了$timeout的内联表示法:
'use strict';
module.controller('ReservationItemCtrl','$timeout',function ($scope,$timeout) {
            ......other stuff.......
            ......other stuff.......
        $scope.toggleCancelReservation = function (reservation) {
            reservation.clickedcancel = true;
            $timeout(function () {
                reservation.clickedcancel = false
            },4000);
        };
    }
]);

大佬总结

以上是大佬教程为你收集整理的javascript – TypeError:$timeout不是函数全部内容,希望文章能够帮你解决javascript – TypeError:$timeout不是函数所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: