2016-02-20 28 views
1

嘿,我剛剛學習了關於angular JS和Firebase的知識,出於某種原因,當我試圖調用下面的代碼中的$ timeout函數時,我似乎得到了一個Reference Error :

'use strict'; 

/** 
* @ngdoc function 
* @name drivenApp.controller:MainCtrl 
* @description 
* # MainCtrl 
* Controller of the drivenApp 
*/ 
angular.module('drivenApp') 
    .controller('MainCtrl', function ($scope) { 
    var rootRef = new Firebase('https://vivid-torch-5432.firebaseio.com/'); 
    var childRef = rootRef.child('message'); 

    childRef.on('value', function(snapshot){ 
     $timeout(function() { 
     var snapshotVal = snapshot.val(); 
     console.log(snapshotVal); 
     $scope.message = snapshot.val(); 
     }); 
    }); 
    }); 

我得到這個確切的錯誤:

Uncaught ReferenceError: $timeout is not defined(anonymous function) @ main.js:16(anonymous function) @ firebase.js:202gc @ firebase.js:52cc @ firebase.js:30dc @ firebase.js:29h.Kb @ firebase.js:221h.Ld @ firebase.js:189Fh.Ld @ firebase.js:179(anonymous function) @ firebase.js:177zh @ firebase.js:171La.onmessage @ firebase.js:170 

任何想法,爲什麼這可能發生?謝謝,尼克

回答

6

你需要聲明$timeout以相同的使用它作爲:

angular.module('drivenApp') 
    .controller('MainCtrl', function ($scope, $timeout) { 
    var rootRef = new Firebase('https://vivid-torch-5432.firebaseio.com/'); 
    var childRef = rootRef.child('message'); 

    childRef.on('value', function(snapshot){ 
     $timeout(function() { 
     var snapshotVal = snapshot.val(); 
     console.log(snapshotVal); 
     $scope.message = snapshot.val(); 
     }); 
    }); 
    });