Я ищу информацию о наилучшем способе получения данных из локального файла JSON и обработки ответа. После просмотра, у меня есть смешанные мысли, поскольку я видел несколько способов сделать одно и то же (хотя и не объяснение, почему можно или не может быть предпочтительным).
По сути, у меня есть приложение Angular, использующее factory для извлечения данных из файла JSON; Затем я жду ответа на мой контроллер, прежде чем использовать его в моем html файле, как показано ниже:
Вариант 1
Factory:
comparison.factory('Info', ['$http', function($http) {
var retrievalFile = 'retrievalFile.json';
return {
retrieveInfo: function() {
return $http.get(retrievalFile);
}
}
}]);
Контроллер:
comparison.controller('comparisonController', ['$scope', 'Info', function($scope, Info) {
Info.retrieveInfo().then(function(response) {
$scope.info = response.data;
});
}]);
Мой главный спор - это выяснить, когда лучше подождать ответа, чтобы решить, или если это даже имеет значение. Я играю с идеей о том, чтобы factory вернуть выполняемое обещание и ждать, пока контроллер также извлечет данные. На мой взгляд, лучше всего отбросить все данные из контроллера и в factory, но я не уверен, что это продолжается до ожидания возврата фактических данных в самом factory. Имея это в виду, я смущен тем, следует ли выбирать вариант 1 или вариант 2 и действительно оценил бы некоторые отзывы от более опытных/квалифицированных разработчиков!
Вариант 2
Factory:
comparison.factory('Info', ['$http', function($http) {
var retrievalFile = 'retrievalFile.json';
return {
retrieveInfo: function() {
return $http.get(retrievalFile).then(function(response) {
return response.data;
});
}
}
}]);
Контроллер:
comparison.controller('comparisonController', ['$scope', 'Info', function($scope, Info) {
Info.retrieveInfo().then(function(response) {
$scope.info = response;
});
}]);
Благодарим вас за любые предложения/предложения заранее!