2015-10-21 78 views
0

我有此腳本:任何想法爲什麼我的投票不起作用?

var app = angular.module('MyApp', ['ui.bootstrap', 'ngCookies']); 

app.service('FetchTeams', function($http, $interval) { 
    this.url = 'data.json'; 

    this.fetch = function() {   
     return $http.get(this.url) 
       .then(function(response) { 
        return response.data; 
       }) 
       .catch(function(response) { 
        console.log('Error retrieving team data', response.status, response.data); 
       }); 
    }; 

    this.startPolling = function(cb) { 
          this.fetch.then(cb); 
          $interval(function() { this.fetch().then(cb) }.bind(this), 60000); // start 1 min interval 
         }; 

    this.endLongPolling = function() { 
          $interval.cancel(this.startPolling); 
          };  
}); 

app.controller('appcontroller', function($scope, FetchTeams) { 
    FetchTeams.startPolling(function(data) { 
     $scope.nflteams   = data.nflteams; 
     $scope.nhlteams   = data.nhlteams; 
     $scope.nbateams   = data.nbateams; 
     $scope.mlbteams   = data.mlbteams; 
    }); 
}); 

上線16 - 18,它應該是輪詢data.json,但當前並非如此。任何想法我在做什麼?

預先感謝您!

+1

代碼必須在問題本身。不在pastebin。 –

+0

對不起..完成 –

+1

什麼是'FetchTeams.startPolling'?這在你的服務定義中是不存在的。 – ryanyuyu

回答

1

你在錯誤的上下文中使用這樣的:

例如,當你這樣做:

  $http.get(this.url) 

這並沒有url屬性,因爲它指向創建功能。

試試這個:

this.url = 'data.json'; 
    var that = this; 

    this.fetch = function() {   
     return $http.get(that.url) 
       .then(function(response) { 
        return response.data; 
       }) 
       .catch(function(response) { 
        console.log('Error retrieving sales data', response.status, response.data); 
       }); 
    }; 

您有錯誤在整個腳本兩次或三次。

+0

所以'this .url ='data.json'; var that = this; ... return $ http.get(that.url)'?那對我來說不起作用 –

+0

@BobbyBruce就像他說的,你在多個地方有這個問題基本上,無論你在另一個函數裏面引用'this', –

相關問題