小编Ala*_*aan的帖子

Angular - 从Factory方法检索数据的最佳实践

我正在寻找有关从本地JSON文件检索数据并处理响应的最佳方法的一些信息.在浏览Stack Overflow之后,我有一些混合的想法,因为我已经看到了多种方法做同样的事情(虽然没有解释为什么一个可能会或可能不是首选).

基本上,我有一个Angular应用程序,它利用工厂从JSON文件中检索数据; 然后我在我的html文件中使用它之前等待响应在我的控制器中解析,类似于下面的内容:

选项1

厂:

comparison.factory('Info', ['$http', function($http) {
var retrievalFile = 'retrievalFile.json';

return {
 retrieveInfo: function() {
  return $http.get(retrievalFile);
 }
}

}]);
Run Code Online (Sandbox Code Playgroud)

控制器:

comparison.controller('comparisonController', ['$scope', 'Info', function($scope, Info) {

Info.retrieveInfo().then(function(response) {
  $scope.info = response.data;
});

}]);
Run Code Online (Sandbox Code Playgroud)

我的主要观点是找出何时最好等待响应解决,或者甚至是否重要.我正在想让工厂恢复履行的承诺,并等待控制器也检索数据.在我看来,最好将所有数据检索抽象出控制器并进入工厂,但我不确定这是否延伸到等待工厂本身返回的实际数据.考虑到这一点,我对是否选择选项1或选项2感到困惑,并且非常感谢来自更有经验/合格开发人员的一些反馈!

选项2

厂:

comparison.factory('Info', ['$http', function($http) {
var retrievalFile = 'retrievalFile.json';

return {
  retrieveInfo: function() {
    return $http.get(retrievalFile).then(function(response) {
      return response.data;
    });
  }
}

}]);
Run Code Online (Sandbox Code Playgroud)

控制器:

comparison.controller('comparisonController', ['$scope', 'Info', function($scope, Info) {

Info.retrieveInfo().then(function(response) {
  $scope.info = response;
});

}]);
Run Code Online (Sandbox Code Playgroud)

感谢您提前提出任何意见/建议!

javascript json factory angularjs

11
推荐指数
1
解决办法
1416
查看次数

标签 统计

angularjs ×1

factory ×1

javascript ×1

json ×1