这种angularJS ng-repeat刚刚起作用

时间:2014-09-04 06:11:55

标签: javascript angularjs

我不知道发生了什么,出于某种原因AngularJS表现得很好:

    <p ng-repeat="item in supplierTeamObjects">
        <a href="#" ng-click="selectSupplierTeam(item.id)">[[item.name]]</a> 
    </p>    
                    ^--NG-REPEATS PERFECTLY
    <br>

    <div ng-init="materialDataStructure = [{'name':'Thorium','company':'Company Name not here','description':'No description','image':'materials/image_4.jpg','product_id':'1922004'}]">
        <p ng-repeat="item in materialDataStructure">
            <p>[[item.name]]</p> 
        </p>
    </div>      ^--NOT WORKING

所以我的实际应用已通过AJAX返回materialDataStructure。但是经过近一个小时的磨头,我逐字复制并粘贴了最小的AJAX响应,并将其硬编码到ng-init中以找到为什么这个东西根本没有循环... < / p>

最后一个div标签不会像p标签中的第一个ng-repeat那样成功进行ng-repeat。发生了什么??起初我以为我的AJAX响应没有回复,但即使将其硬编码为ng-repeat,它仍然不会循环但是第一次ng-repeat通过AJAX工作得很好......

我在这里做错了什么?

3 个答案:

答案 0 :(得分:2)

那是因为P

中的P标签

删除它,它会正常工作

<div ng-init="materialDataStructure = [{'name':'Thorium','company':'Company Name not here','description':'No description','image':'materials/image_4.jpg','product_id':'1922004'}]">
        <p ng-repeat="item in materialDataStructure">
            [[item.name]] 
        </p>
    </div>

我假设可能已在应用配置

中将{{替换为[[

以下是plunkr示例:http://plnkr.co/edit/sig1bXbwnQ5gPtEwL2u3?p=preview

答案 1 :(得分:2)

Vamsi V答案是正确的,以下解释为什么p标签不起作用

来自HTML5 doc http://www.w3.org/TR/html5/grouping-content.html#the-p-element

如果p元素紧跟地址,文章,旁边,blockquote,div,dl,fieldset,footer,form,h1,h2,h3,则可省略p元素的结束标记,h4,h5,h6,header,hgroup,hr,main,nav,ol,p,pre,section,table或ul,element,或者如果父元素中没有更多内容且父元素不是一个元素。

答案 2 :(得分:1)

删除ng-repeat

中的<p>[[item.name]]</p>