$ http GET的AngularJS问题

时间:2016-09-01 16:35:40

标签: php angularjs json

我使用php构建了一个web服务,它读取数据库和echo json。我去路径看结果,结果是成功的。这是我的网络服务的一个例子。

[{"id":"1","skill":"1","src":"walmart","total":"1"},{"id":"1","skill":"1","src":"target","total":"2"}]

这是我的app.js代码

(function () {
'use strict';
var app =   angular.module('myApp', ['angular.filter']);
// Declare app level module which depends on views, and components
app.controller('DeveloperTable', function ($scope, $http) {
        var vm = this;

        // GET request example:
        $http({
            method: 'GET',
            url: '../_includes/web_service_person.php'
        }).then(function successCallback(data) {
            vm.developer = data;
        }, function errorCallback(data) {
            console.log(":(");
        });
    });

})();

这是我的index.html

<div ng-controller="DeveloperTable">
    <h4>Developer Assesment</h4>
    <table class="table">
        <tr>
          <th>pid</th>
          <th ng-repeat="(skill, value) in developer | groupBy: 'skill'">
            {{skill}}
          </th>
        </tr>

有趣的是,我的控制台中没有错误,但我也没有获取数据。 我在这里缺少什么?

修改groupBy过滤器来自angular-filter library

2 个答案:

答案 0 :(得分:1)

ng-repeat语法为:ng-repeat="(key, value) in myObj"。基于您发布的json,vm.developer是一个数组,因此skill将被设置为数组索引。

我对groupBy: 'did'也不太确定,因为我在json对象中没有看到任何did属性。

尝试如下:

<th ng-repeat="data in vm.developer | groupBy: 'id'">
    {{data.skill}}
</th>

答案 1 :(得分:1)

一些事情:

您需要在代码中执行$scope.developer = ...vm.developer不在您的范围内。

除此之外,你可以:

在浏览器中打开Firebug,转到网络选项卡,查看对Web服务的HTTP请求。您可以看到它是否返回数据。如果是,请调试它:

查看您的HTML,然后添加<pre>{{developer | json}}</pre>,我认为您会看到它是空的。