Angular - 无法获得服务以获得成功的HTTP请求

时间:2017-01-13 19:35:41

标签: javascript angularjs

我正在构建一个基本应用程序来加载当前正在进行的事件列表。我有一个基本的CRUD系统,我在控制器中构建了所有功能。我被建议使用Angular自定义服务,而不是在控制器上的许多函数上堆积。

我现在正在将我的代码重新编写为自定义服务,但无法完全掌握结构。以下是我到目前为止的情况,但目前我在此行Unexpected token .上的服务代码上收到错误var configurations.data_result_1 = configurations.data_result_1.split("\r\n");

我觉得我的代码都错了,但是在网上找不到相似的情况。会感激一些帮助。这是我到目前为止所得到的:

服务:

var GDI_configurations = {};

app.service('MyService', function () {
    this.sayHello() //fetch data on page load.

    this.sayHello = function () {
    var deferred = $q.defer();
    $http({
        method: 'GET',  
        url: 'AJAX PATH',
        headers: { "Accept": "application/json;odata=verbose;charset=utf-8"} 
    }).then(function(data){

      var configurations = data;
      var configurations.data_result_1 = configurations.data_result_1.split("\r\n");
      var configurations.data_result_2 = configurations.data_result_2.split("\r\n");

  };
});

控制器:

app.controller('AppController', function (MyService, $scope) {
 $scope.configurations = function() { MyService.sayHello() }; 
});

1 个答案:

答案 0 :(得分:-1)

首先,你不是在服务中注入$ q和$ http。 其次,您没有使用$ q来解决或拒绝。 第三,由于$ http服务返回一个承诺,因此从$ q创建一个承诺是$ q冗余。

请考虑以下代码:

    app.service('MyService', function ($http) {

        this.sayHello = function () {
            return $http({
                method: 'GET',  
                url: 'AJAX PATH',
                headers: { "Accept": "application/json;odata=verbose;charset=utf-8"} 
            });
        };
    });



    app.controller('AppController', function (MyService, $scope) {
        $scope.configurations = null;
        MyService.sayHello().then(function(data){
            $scope.configuration = data;
           $scope.configurations.data_result_1 = $scope.configurations.data_result_1.split("\r\n");
           $scope.configurations.data_result_2  = $scope.configurations.data_result_2.split("\r\n");
        }, function(error){
           // some error occurred
        })
    });

如果你想在服务中缓存响应以从多个控制器中检索它,请告诉我..我可以用这样的方式重写代码..希望这可以帮助你...欢呼