[AngularJS]从 AngularJs 服务 WebApi 发出到货数据

发布时间: 2017/4/16 21:37:12
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我要在我的应用程序中使用 AngularJS 服务和使一切都不错。为此目的,我遵循的一些文章。但它似乎并不完整。右??
看不到任何错误或东西,但当我设置 Alert(data);我会得到未定义的错误。我错过了的工作要做在这里是什么?

我的 App.js

var app = angular.module('starter', ['ionic'])

我的 Service.js

var serverPath = 'http://url/api/locations';
app.service('testService', function ($http) {
this.getLocations = function () {
    $http.get(serverPath).success(function (data) {
        return data;
    });
    };
});

我的 controller.js

app.controller('LocationsController', function ($scope, testService) {
    $scope.locations = testService.getLocations();
});

和我的用户界面

<div ng-controller="LocationsController">
      <ul>
         <li ng-repeat="location in locations">
               {{ location.locationName }}
         </li>
      </ul>
</div>

解决方法 1:

你可以从获取数据异步调用直接尽快你做请求的数据。您应该遵循承诺模式来处理异步数据。

我想指出你做的几个错误。

  1. 你应该有回报 $http.get 承诺从服务方法 getLocations ,以便您可以将 .then 在该方法的功能。
  2. 然后在控制器内调用服务方法 getLocations 从控制器和地方 .then 函数,从哪 1 会调用当 ajax 成功和第二,将会调用对 ajax 错误。 功能的.then

    this.getLocations = function () {
        return $http.get(serverPath); //return promise object
    };
    

控制器

testService.getLocations().then(function(response){ //success function
     $scope.locations = response.data;
}, function(error){ //error function
     console.log("Some error occurred", error)
});
赞助商