【问题标题】:Replace static JSON data with $HTTP request in AngularJS factory在 AngularJS 工厂中用 $HTTP 请求替换静态 JSON 数据
【发布时间】:2018-05-21 07:30:09
【问题描述】:

在AngularJS工厂中替换静态JSON数据有一些麻烦,这里是静态数据的例子:

    angular.module('starter.services', [])    
    .factory('catgs', function($http) {
      var catgs = [{
        id: 19,
        name: 'CATG20'
},{
        id: 20,
        name: 'CATG21'
      }];    
      return {
        all: function() {
          return catgs;
        },
        remove: function(catg) {
          catgs.splice(catgs.indexOf(catg), 1);
        },
        get: function(catgId) {
          for (var i = 0; i < catgs.length; i++) {
            if (catgs[i].id === parseInt(catgId)) {
              return catgs[i];
            }
          }
          return null;
        }
      };
    });

需要将静态 var catgs 替换为来自 json 数据 url 的 $http.get。我是 Angular 新手,需要帮助解决这个问题。

【问题讨论】:

    标签: angularjs json


    【解决方案1】:

    你正在寻找这样的东西

    function getStuff() {
    
            return $http({
                method: 'POST',
                url: '/yourresturl'
            }).then(function successCallback(response) {
    
                return response;
            }, function errorCallback(response) {
                return ;
               //do something
            });
    
        }
    

    【讨论】:

    • 看起来有点像 var catgs = $http.get('myurl') .... 但这不起作用,我不知道该怎么做
    【解决方案2】:

    怎么样

     angular.module('starter.services', [])    
            .factory('catgs', function($http) {
              var catgs =null;    
              return {
                all: function() {
                  if(catgs != null)
                  return catgs;
                  $http.get('myurl').then(function(res){
                   catgs=res.data;//
                   return catgs;
                 })
                },
                remove: function(catg) {
                  catgs.splice(catgs.indexOf(catg), 1);
                },
                get: function(catgId) {
                  for (var i = 0; i < catgs.length; i++) {
                    if (catgs[i].id === parseInt(catgId)) {
                      return catgs[i];
                    }
                  }
                  return null;
                }
              };
            });
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-04
    • 2015-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多