1

我已经有这个工作在过去,我已经移动了关于localhost的网站,现在我似乎无法得到ng-repeat来显示结果。有任何想法吗?Angular ng-repeat not loading

应用程序:

var app = angular.module('Search', ['ngResource']); 

function seriesListCtrl ($scope, $http) { 

// Set the defaults 
$scope.url = '/order/series_list'; 
$scope.products = []; 

// On Success add data to the products array 
$scope.loadedItems = function (data, status) { 
    $scope.products = data; 
    $('.Initialloader').hide(); 
} 

// Fetch the URL where the JSON array is 
$scope.fetch = function() { 
    $('.Initialloader').show(); 
    $http.get($scope.url).success($scope.loadedItems); 
} 

// Instantiate the process 
$scope.fetch(); 

} 

/顺序/ series_list加载在细。但是,这些数据似乎并未加载到范围内并重复。

HTML:

<div class="order_wrapper" ng-app="Search"> 
<div ng-controller="seriesListCtrl"> 

    <div class="well"> 
     <form class="form-inline"> 
      <div class="col-lg-5"><input type="text" class="form-control" placeholder="Search Description" ng-model="query.series_description"></div> 
      <div class="col-lg-5"><input type="text" class="form-control" placeholder="Search Part Number/SKU" ng-model="query.product_sku"></div> 
      <button type="submit" class="btn btn-default"><i class="icon-search"></i> Search</button> 
     </form> 
    </div> 

    <div class="accordion" id="product_list"> 
     <div class="accordion-group" ng-repeat="prod in products | filter:query"> 
      <div class="accordion-heading order_listing"> 
       <div class="row"> 
        <div class="col-lg-2 image_container"> 
         <img ng-src="{{prod.images_url}}" width="100px"> 
        </div> 
        ......... Extra blurb ........ 
       </div> 
      </div> 
     </div> 
    </div> 
</div> 

AnjularJS 1.2.0 - 精加载

angularjs资源 - 精加载

所以只是为了确认:数据正在从加载/ order/series_list与$scope.fetch,萤火虫表示该页面已被提取并包含内容。然后这应该将数据传递给$scope.loadedItems,然后将其转到$scope.products

在html中,有一个ng-repeat,然后应该循环产品中的所有产品。目前,我的.Initialloader未被隐藏,ng-repeat仍然隐藏。

我真的很感激你的帮助 - 我已经上了好几个小时,似乎无法弄清楚是什么导致了这个问题。

在此先感谢。

+0

如果你想要模拟异步加载的工作演示,请发布你加载的Json数据 –

回答

0

如果您在加载完成前尝试打印它,products列表可能为空。

我会使用承诺工厂来处理异步调用。

所以,你可以写工厂,如:

app.factory('Data', ['$http','$q', function($http, $q) { 

    var data = $http.get("your URL");  

     var factory = { 
      query: function (selectedSubject) { 
       var deferred = $q.defer(); 
       deferred.resolve(data); 
        return deferred.promise; 
      } 
     } 
     return factory; 
}]); 

而且从控制器拨打:

function seriesListCtrl ($scope, Data) { 

... 

     Data.query() 
        .then(function (result) { 
         $scope.products = data; 
        }, function (result) { 
         alert("Error: No data returned"); 
        }); 

作为一个侧面说明

我强烈建议不要做任何DOM操作/控制器中的更新。你有指示。

0

如果从循环中删除过滤器,它会工作吗?

相关提示,$('.Initialloader').show();可以ngShow

+0

可悲的是没有。但是,谢谢。 – T2theC

0

AHHHH所取代。弄清楚了。我的JSON有问题!很烦人。非常感谢每个花时间回答的人 - 非常感谢。