2016-09-26 40 views
0

我是新來的anugular js,並且在簡單的模塊上工作,例如Image Slider。TypeError:fn不是angularjs的completeOutstandingRequest函數

在這個模塊中,我只是改變主頁上的圖像。一切工作正常。但是現在,我想使用一些動畫,比如顯示下一張圖片時,之前的圖片會被隱藏起來,並帶有淡化效果。

要使用動畫,我使用了角動畫插件。當我包括這個插件爲m的應用程序,然後瀏覽器顯示錯誤下面給出:

TypeError: fn is not a function 
at angular.js:16299 
at completeOutstandingRequest (angular.js:4924) 
at angular.js:5312 

我的自定義圖像滑動JS是:

var ps_mobile_app = angular.module('app', ['ngAnimate', 'ngRoute', 'ngCookies']); 
ps_mobile_app.directive('slider', function($timeout) { 
return { 
    restrict: 'AE', 
    replace: true, 
    scope: { 
     images: '=' 
    }, 
    link: function(scope, elem, attrs) { 
     scope.currentIndex = 0; 

     scope.next = function() { 
      scope.currentIndex < scope.images.length - 1 ? scope.currentIndex++ : scope.currentIndex = 0; 
     }; 

     scope.prev = function() { 
      scope.currentIndex > 0 ? scope.currentIndex-- : scope.currentIndex = scope.images.length - 1; 
     }; 

     scope.$watch('currentIndex', function() { 
      scope.images.forEach(function(image) { 
       image.visible = false; 
      }); 
      scope.images[scope.currentIndex].visible = true; 
     }); 

     /* Start: For Automatic slideshow*/ 

     var timer; 

     var sliderFunc = function() { 
      timer = $timeout(function() { 
       scope.next(); 
       timer = $timeout(sliderFunc, 5000); 
      }, 5000); 
     }; 

     sliderFunc(); 

     scope.$on('$destroy', function() { 
      $timeout.cancel(timer); 
     }); 

     /* End : For Automatic slideshow*/ 
    }, 
    templateUrl: 'shared/image-slider/slider.html' 
} 

});

我的圖像滑塊模塊HTML是:

<div class="slider"> 
<div class="slide" ng-repeat="image in images" ng-show="image.visible"> 
    <img ng-src="{{image.src}}" /> 
</div> 
<div class="arrows"> 
    <a href="#" ng-click="prev()"> 
    <img src="shared/image-slider/img/left-arrow.png" /> 
    </a> 
    <a href="#" ng-click="next()"> 
    <img src="shared/image-slider/img/right-arrow.png" /> 
    </a> 
</div> 
</div> 

我正在使用米家頁上面的模塊:

<slider images="slider_images" /> 

有了上面的代碼圖像滑塊,而無需使用角動畫插件工作正常。但是對於Angular,我得到這個錯誤。經過少量分析,我認爲它是由於超時功能而發生的。

任何人都可以請幫我解決這個問題嗎?由於提前

回答

0

嘗試

var sliderFunc = function() { 
 
      timer = $timeout(function() { 
 
       scope.next; 
 
       timer = $timeout(sliderFunc, 5000); 
 
      }, 5000); 
 
     };