gpt4 book ai didi

javascript - 带有 ng-scroll 和 ng-repeat 的 AngularJS

转载 作者:行者123 更新时间:2023-11-30 05:41:45 27 4
gpt4 key购买 nike

使用 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>

关于javascript - 带有 ng-scroll 和 ng-repeat 的 AngularJS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20448012/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com