【问题标题】:angularJS communicating with APIangularJS 与 API 通信
【发布时间】:2013-05-25 21:30:33
【问题描述】:

嗨,我是 AngularJS 的新手。 尝试与 JSON API 通信。该 API 被称为我正在获取结果,但结果未填充到视图中。

这里是视图:

    <div >

   <div data-ng-repeat="order in ordersResult.orders">
       {{error}}
       <fieldset class="fieldset">

            <legend>
            <b>{{order.klant.straat}} {{order.klant.huisnummer}} - {{order.klant.bedrijf}}</b>
            </legend>
            <table class="table table-bordered table-striped table-hover">
                <th>Broodje</th><th>Aantal</th>
                <tr data-ng-repeat="(tag,aantal) in order.broodjes" data-ng-click="check()">
                    <td>{{tag}}</td><td>{{aantal}}x</td>
                </tr>


               <tr data-ng-repeat="(tag,opmerkingen) in order.broodjesSpeciaal">
                   <td>{{tag}}</td><td><span ng-repeat="opmerking in opmerkingen">1x {{opmerking}}<br></span></td>
               </tr>
            </table>

       </fieldset>

    </div>
</div>

这里是控制器:

app.controller('BezorgController', function ($scope, $resource) {


function getToday(){
    var today = new Date();
    var dd = today.getDate();
    var mm = today.getMonth()+1;

    var yyyy = today.getFullYear();
    if(dd<10){dd='0'+dd} if(mm<10){mm='0'+mm}
    //return mm+""+dd+""+yyyy;

    return "22052013";
}






$scope.ordersRequest = $resource('http://www.movieapphd.com/bertus/api.1.0.0/order/bezorging/:day?key=:key',
    {day: getToday(), key: API_KEY },
    {get: {method: "JSONP"}}
);
$scope.ordersResult = $scope.ordersRequest.get();

if($scope.ordersResult.size == 0){
    $scope.error = "Geen bezorgingen vandaag";
}

});

这是我得到的 json:

{
   "orders":[
      {
         "klant":{
            "bedrijf":"X",
            "straat":"Haarlemmer",
            "huisnummer":"8"
         },
         "broodjes":{
            "0.0":0
         },
         "broodjesSpeciaal":{
            "0.0":[
               "nothing"
            ]
         }
      },
      {
         "klant":{
            "bedrijf":"Anouk Beauty Gangbang",
            "straat":"Haarlemmer",
            "huisnummer":"220"
         },
         "broodjes":{
            "0.0":0,
            "1.1":2,
            "1.2":1,
            "2.3":1
         },
         "broodjesSpeciaal":{
            "0.0":[
               "nothing"
            ]
         }
      },
      {
         "klant":{
            "bedrijf":"Hans Kazan GoochelTrucs",
            "straat":"Haarlemmer",
            "huisnummer":"222"
         },
         "broodjes":{
            "0.0":0,
            "1.1":2,
            "1.2":2,
            "2.3":1,
            "3.1":1
         },
         "broodjesSpeciaal":{
            "0.0":[
               "nothing"
            ],
            "2.3":[
               "zonder stukjes",
               "met extra stukjes"
            ]
         }
      }
   ]
}

我在这里做错了什么?

【问题讨论】:

  • 呃,你的 JSON 中的“Anouk Beauty Gangbang”是怎么回事?

标签: json angularjs


【解决方案1】:

AngularJS docs 开始,您不能对数组使用该语法,而且有时broodjesbroodjesSpecial 是数组,有时是关联数组。此外,在broodjes 是关联数组的一种情况下,没有键。

【讨论】:

  • 请检查我的编辑。我已更改为 api 以返回一个名为 orders 的对象并给它一个数组。
  • 仍然不一致:"broodjes":[]"broodjes":{"3.1":1, "1.2":1}。您需要确保使它们看起来相同。
  • 这就是为什么我还收到以下错误:Uncaught SyntaxError: Unexpected token : /bertus/api.1.0.0/order/bezorging/22052013/?key=
  • 如果我使响应保持一致没有区别。看看编辑
【解决方案2】:

需要将方法更改为 get,因为 API 位于同一服务器上。

【讨论】:

    猜你喜欢
    • 2015-05-22
    • 2017-09-28
    • 1970-01-01
    • 2012-04-06
    • 2016-03-16
    • 1970-01-01
    • 2022-08-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多