我有一個編碼風格的問題。給定下面的代碼,它使用http服務來檢索數據,然後使用控制器來執行該服務/工廠。看起來好像在控制器的末尾調用makePromise()函數並不是「正確」的做事方式。它的工作原理,但有沒有更好的方式來執行此代碼?也許是最佳做法?我無法想象例如10個左右的執行語句在控制器的末尾......看起來不正確。我只是在尋找更優雅的解決方案。更好的方式來啓動角度控制器
var app = angular.module('app', []);
app.factory('DataService', function($http, $q) {
return {
getData: function() {
return $http.get('http://ergast.com/api/f1/2013/driverStandings.json')
.then(function(response) {
if (typeof response.data == 'object') {
return response.data;
} else {
return $q.reject(response.data);
}
}, function(response) {
return $q.reject(response.data);
})
}
}
});
app.controller('MainCtrl', function($scope, DataService) {
$scope.driversList = [];
var makePromise = function() {
DataService.getData()
.then(function(data) {
//console.log(data.MRData.StandingsTable.StandingsLists[0].DriverStandings)
$scope.driversList = data.MRData.StandingsTable.StandingsLists[0].DriverStandings;
}, function(error) {
console.log('error')
})
}
//THIS IS MY CONCERN HERE...
makePromise();
})