AngularJS带有ng滚动和ng重复
AngularJS with ng-scroll and ng-repeat
将angular ui与angular一起使用。标记包括一个ng-scroll
元素,我使用它从服务中检索到的数据。我想创建项目行,以便在ng-scroll
中创建ng-repeat
。这在原则上是有效的(plunker),但AngularJS说我在JSON编码中有问题,需要帮助找出我做错了什么。
所以需要明确的是,下面的标记和JSON在plunker中工作,但在应用程序中不工作。plunker和下面的JSON取自调试器响应体。
标记:
<div class="row" >
<div class="col-md-12" >
<div class="video_thumb" ng-scroll='video_list in VideoIndexScrollerSource' buffer-size='10' padding="2" >
<div class="row" ng-repeat="video in video_list">
<p>
<a ng-href="/guides/{{video._id}}" target="_self">
<img ng-src="{{video.thumb}}">
</a>
</p>
</div>
</div>
</div>
</div>
JSON:
在Rails中,我创建了一个数组数组。每个元素都是要在上面的显示代码中使用的属性的散列。返回的JSON如下所示:
[
[
{
"thumb": "/uploads/thumb_11167113_det.jpg",
"_id": "52264092a0eef2d029673f72"
},
{
"thumb": "/uploads/thumb_11169448_det.jpg",
"_id": "522649b7a0eea05c61388f4a"
},
{
"thumb": "/uploads/thumb_278817_det.jpg",
"_id": "522649b4a0eea05c61388be2"
},
{
"thumb": "/uploads/thumb__old_",
"_id": "522e5290e4b0889f651f13ae"
},
{
"thumb": "/uploads/thumb_269411_det.jpg",
"_id": "522649baa0eea05c613891b3"
},
{
"thumb": "/uploads/thumb__old_",
"_id": "5227d1f3a0ee91bdc636efb9"
},
{
"thumb": "/uploads/thumb_11169964_det.jpg",
"_id": "52264091a0eef2d029673e49"
}
],
[
...
],
[
...
]
]
不确定为什么这不起作用,ng scroll应该迭代行,将数组放入video_list,ng repeat应该从行中获取每个对象并获取值。
错误:
这是我在返回上面的JSON时得到的AngularJS错误:
TypeError: Object #<Resource> has no method 'push'
at copy (http://localhost:3000/assets/angular-1.2.0/angular.js?body=1:827:33)
at new Resource (http://localhost:3000/assets/angular-1.2.0/angular-resource.js?body=1:402:21)
at http://localhost:3000/assets/angular-1.2.0/angular-resource.js?body=1:483:52
at Array.forEach (native)
at forEach (http://localhost:3000/assets/angular-1.2.0/angular.js?body=1:301:21)
at angular.module.factory.Resource.(anonymous function).$http.then.value.$resolved (http://localhost:3000/assets/angular-1.2.0/angular-resource.js?body=1:482:37)
at deferred.promise.then.wrappedCallback (http://localhost:3000/assets/angular-1.2.0/angular.js?body=1:10598:99)
at deferred.promise.then.wrappedCallback (http://localhost:3000/assets/angular-1.2.0/angular.js?body=1:10598:99)
at http://localhost:3000/assets/angular-1.2.0/angular.js?body=1:10684:40
at Scope.$get.Scope.$eval (http://localhost:3000/assets/angular-1.2.0/angular.js?body=1:11577:44) angular.js?body=1:9102
(anonymous function) angular.js?body=1:9102
$get angular.js?body=1:6707
deferred.promise.then.wrappedCallback angular.js?body=1:10601
deferred.promise.then.wrappedCallback angular.js?body=1:10598
(anonymous function) angular.js?body=1:10684
$get.Scope.$eval angular.js?body=1:11577
$get.Scope.$digest angular.js?body=1:11422
$get.Scope.$apply angular.js?body=1:11683
done angular.js?body=1:7700
completeRequest angular.js?body=1:7866
xhr.onreadystatechange angular.js?body=1:7822
我不得不将每个内部数组封装在一个伪"行"散列中。Angular不喜欢数组,它期望对象的数组。这个标记与新的json:一起使用
<div class="row" >
<div class="col-md-12" >
<div class="video_thumb" ng-scroll='video_list in VideoIndexScrollerSource' buffer-size='10' padding="2" >
<div class="row" ng-repeat="video in video_list.row">
<p>
<a ng-href="/guides/{{video._id}}" target="_self">
<img ng-src="{{video.thumb}}">
</a>
</p>
</div>
</div>
</div>
</div>
我在接收数组时将Angular $resource
方法设置为get
时看到了这一点(或者在接收阵列时不设置isArray:true
)。
方法query
需要一个数组(docs):
"query":{method:'GET',isArray:true},
get
期望一个对象:
"获取":{方法:"获取"},
相关文章:
- 角度:在ng重复上切换图像
- 角度的项目列表 ng 重复,ng 单击显示全宽描述
- 防止ng重复中的重复值(AngularJS)
- 从键值结构中获取数据,并将其与AngularJS中ng重复的值进行比较
- 在ng重复循环中显示来自不同文件夹的图像
- 在ng重复循环中显示条件内容的最佳方式是什么
- 离子2:在离子载玻片内产生ng重复
- 正在ng重复元素上添加事件
- 嵌套ng重复angularjs
- ng模型内的ng重复的ng重复开始
- 混合元素的有角度的ng重复
- 如何避免在angular上多次调用方法;s ng重复
- 在表格格式中使用ng重复
- AngularJS ng重复处理空列表事例
- 如何在AngularJS-ng重复循环中将长JSON路径缩短为变量
- Angular在与ng重复作斗争
- ng重复中的ng模型-初始化唯一作用域属性
- ng重复变量到ng模型
- 尝试使用ng重复时出现空白屏幕
- 如何防止由ng重复引起的net::ERR_INSUFICIENT_RESOURCES错误