2017-06-05 29 views
2

service.js

 angular.module('app') 
     .service('tableService', [ 
     '$q', 
     tableService 
    ]); 

    function tableService($q){ 
    var tableData = [ 
     { 
     issue: 'Vinayak N', 
     progress: 100, 
     // status: 69, 
     class: 'md-accent' 
     } 
    ]; 
} 

我想對$ http.get( 'http://localhost:5000/api/studentsList')的呼叫;和response.data分配到一個局部變量資料表中service.js

回答

2

試試這個:

angular.module('app') 
     .service('tableService', [ 
     '$q','$http', 
     tableService 
    ]); 

    function tableService($q, $http){ 
    var tableData = [ 
     { 
     issue: 'Vinayak N', 
     progress: 100, 
     // status: 69, 
     class: 'md-accent' 
     } 
    ]; 
    $http.get('http://localhost:5000/api/studentsList').then(function(result){ 
     tableData.data = result.data; 
    }); 
} 
+0

JavaScript是異步你不能這樣做。 – Inayath

+0

@Inathath所以,我認爲問題在桌子上。它在數據加載之前呈現,對嗎? –

0

必須在您服務您的變量綁定到你的控制器。

$ http.get( 'http://localhost:500/api/studentList')。然後(函數(RES){ tableService.tableData = RES;});

有很多方法來綁定它們。這真的取決於你如何操縱你的代碼。

+0

它不能正常工作 – Inayath

0

首先創建一個服務

angular 
    .module('app') 
    .factory('tableService', tableService); 
function tableService($q, $http, $cookies) { 
    return { 
    tableData: tableData 
    }; 

    function tableData() { 
    var d = $q.defer(); 
    $http({ 
     method: 'GET', 
     url: 'http://localhost:5000/api/studentsList' 
    }).success(function(response) { 
     d.resolve(response); 
    }).error(function(response) { 
     d.reject(response); 
    }); 
    return d.promise; 
    } 
} 

注:我創建的工廠,你可以做,通過服務也

創建您的控制器,並調用內部控制服務

angular 
    .module('app') 
    .controller('tableController', tableController); 
function tableController($scope, tableService) { 
    $scope.tableData = []; 
    tableData(); 

function tableData() { 
    tableService.tableData().then(function(response) { 
     if (response.success) { 
      $scope.tableData = response.data; 
     } 
    }, function() { 
    }); 
    } 
} 
相關問題