2016-11-06 6 views
0

ここでは、$ timeoutを使ってjavascript forloopに遅延を追加しています。予期せぬことにエラーが発生しました
ReferenceError $ timeoutは定義されていません。私はangularjsに新しいです。私を助けてください。 PLNKR


function CompLibrary() { 
    return { 
    init: init 
    } 
    function init(dependencies, controller) { 
    dependencies.push(controller); 
    angularApp.controller('MainCtrl', dependencies); 
    } 
} 
var compX = CompLibrary(); 
compX.init(deps, _controller); 
function _controller() { 
    var ViewModel = this; 
    ViewModel.search = "Name"; 
    ViewModel.quantity = 1; 

    for(var i = 0; i < 4; i++) { 
    (function(i){ 
     $timeout(function() { 
      ViewModel.quantity++; 
     }, i * 2000); 
    })(i); // Pass in i here 
    } 

} 

答えて

-1
var deps = []; 
var angularApp = angular.module('plunker',[]); 
function CompLibrary() { 
    return { 
    init: init 
    } 
    function init(dependencies, controller) { 
    dependencies.push('$timeout'); 
    dependencies.push(controller); 
    angularApp.controller('MainCtrl', dependencies); 
    } 
} 
var compX = CompLibrary(); 
compX.init(deps, _controller); 
function _controller($timeout) { 
    var ViewModel = this; 
    ViewModel.search = "Name"; 
    ViewModel.quantity = 1; 

    for(var i = 0; i < 4; i++) { 
    (function(i){ 
     $timeout(function() { 
      ViewModel.quantity++; 
     }, i * 2000); 
    })(i); // Pass in i here 
    } 

} 

を更新参照してください。

7

あなたはinjectコントローラ機能に$timeoutに持っています。

function _controller($timeout) { ... } 

我々はこの問題を解決することができるコントローラ機能に$timeoutを注入することによりPlunkr

+0

私はこれで試しましたが動作しません – htoniv

+1

私はPlunkrリンクで私の答えを更新しました:) –

関連する問題