【问题标题】:AngularJS ng-repeat first item always nullAngularJS ng-repeat 第一项始终为空
【发布时间】:2014-08-20 09:54:18
【问题描述】:

如主题中所述,当我对第一个元素始终为空的事物使用 ng-repeat 时,会出现什么问题?我已经尝试了几种方法来摆脱这个问题,但似乎没有奏效。

我所有的 ng-repeat 数据都存储在 JSON 文件中,并且 JSON 文件将通过 $http 调用传递给作用域,如下所示:

        $http.get('index.php?r=exploreComment/WS_getExploreComments&topic_id=' + topic_id).success(function(data){
        $scope.comments = data;
        console.log('Comment Loaded');

一切都正确加载,只是 ng-repeat 循环中的第一项始终为 null..

GET http://localhost/viralenz/resource/_explore/%7B%7Bphoto.image%7D%7D 404 (Not Found) 
GET http://localhost/viralenz/resource/_explore/%7B%7Bimage.image%7D%7D 404 (Not Found) 
GET http://localhost/viralenz/resource/_users/%7B%7Bcomment.user_id%7D%7D/avatar/%7B%7Bcomment.avatar%7D%7D 404 (Not Found) 

我以为这只是 JSON 数据的错误,但后来我尝试了图像,也出现了同样的问题...我无法添加图像,所以我附上了一个链接...

http://i.stack.imgur.com/lsFDX.png

我做错了什么?

///// 编辑了更多细节 ////

这就是 ng-repeat 的样子

<div class="exploreCommentBlock" ng-repeat="comment in comments">
    <table style="width: 100%">
        <tr style="width: 100%">

            <td style="width: 5%" rowspan="2" valign="top"><img
                src="<?php echo UrlMgmt::getUserResourceUrl()?>{{comment.user_id}}/avatar/{{comment.avatar}}"
                , style='height: 64px; width: 64px; border-radius: 5px;' /></td>



            <td style="width: 70%"><span class="author_name">{{comment.username}}</span>

--AND--SO--ON--

这是 JSON 数据:

[{"comment_id":"92","user_id":"1","topic_id":"1","data":"lalalalalalaa","image_append":null,"rating":"1","datetime":"2014-08-19 13:03:58","username":"Kenny Yap","avatar":"14079353851"},
{"comment_id":"91","user_id":"1","topic_id":"1","data":"test blank post","image_append":null,"rating":"1","datetime":"2014-08-19 10:48:41","username":"Kenny Yap","avatar":"14079353851"},
{"comment_id":"28","user_id":"2","topic_id":"1","data":"test owner comment","image_append":null,"rating":"5","datetime":"2014-08-18 09:39:59","username":"Dummy User","avatar":"default_avatar.png"}]

【问题讨论】:

  • 数据长什么样,ng-repeat长什么样?
  • @PSL 我已经添加了 ng-repeat 和 JSON 数据样本。谢谢
  • 哪个字段显示为空?您是否没有在 html 中显示相关部分

标签: json angularjs angularjs-ng-repeat


【解决方案1】:

如果您在 ng-repeat 中(或一般在您的页面上)使用 img src="{{stuff}}",当页面首次加载并且 {{stuff}} 出现未定义时,您会收到错误消息。诀窍是改用img ng-src="{{stuff}}",它会在未定义变量时正确处理。

【讨论】:

  • 所以你建议尝试使用 ng-src 而不是 src?好的,谢谢...我现在试试,让您知道...
  • 我找到了我的问题并解决了它......首先它的 ng-src 问题减轻了我一半的错误,当我在客户端解码 json 文件时,我不知何故意识到,一个神秘的"," 出现在最前面的数组中,这会导致图像显示为 NULL...也感谢您的帮助@pfooti
【解决方案2】:

对您的代码的进一步调查表明这里还有其他事情发生,可能不是我上面链接的 ng-src 事情。

具体来说,您正在 ng-repeat 内部进行操作以获取图像。我会在那里看看问题出在哪里,实际上,如果您已经在加载用户的个人资料信息,您可能应该只通过 angular 加载图像数据,而不是通过 php 将其注入。

【讨论】:

    猜你喜欢
    • 2014-10-19
    • 1970-01-01
    • 2016-12-25
    • 2018-04-11
    • 2018-02-10
    • 2017-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多