2

我正在开发一个单页应用程序,我想调用服务器以查询特定价格的项目(例如 www.myapp.com/products?price=1200)。我能够执行请求并从端点取回 JSON,但视图不会更新和显示数据。关于为什么我的观点没有更新的任何想法?

我的第一个想法是问题出在 $routeProvider 中,但我不知道我需要如何更改它。

谢谢!

我的角度模块

angular.module('myApp', [])
  .config(['$routeProvider', function($routeProvider) {

  $routeProvider.
    when('/products', 
      { templateUrl: 'partials/productSearchTemplate.html',   
        controller: ProductControl
      });
}]);

我的控制器

function ProductControl($scope, $http) {
  $scope.sendRequest = function () {
    $http({
        url: '/products', 
        method: "GET",
        query: {price: $scope.price}
    }).success(function(data) {
      $scope.products = data;    
    });
  }
}

我的观点

<div class="products">
    <div ng-repeat="product in products" class='product-panel'>
        <div class='front'>                
            <span class='product-title'>{{product.title}}</span><br/>
            <span class='product-manufacturer'>
                {{product.manufacturer}}
            </span>
        </div>
        <div class='back'>
            <span class='product-price'>
                {{product.price}}
            </span><br/>
            <a href="{{product.url}}">Details</a>
        </div>
    </div>
</div>
4

1 回答 1

0

我怀疑您的“产品”端点不返回数组,而是返回对象。您期望来自服务器的以下 json:

[
   {"title":"title","price":1,"manufacturer":"Someone"}
] 

但最有可能的服务器返回对象而不是数组:

 {
    "products":[{"title":"title","price":1,"manufacturer":"Someone"}],
    "totalCount": 1 
 }

因此,只需通过 Firebug 或 Chrome 开发工具检查从服务器返回的内容,并在控制器中执行必要的转换。

于 2013-04-13T18:03:22.190 回答