为了账号安全,请及时绑定邮箱和手机立即绑定

嵌套ng-repeat

嵌套ng-repeat

一只名叫tom的猫 2019-11-29 09:27:18
我有一些虚拟XML文件:<Week number="2013-W45">    <Day dow="1" templateDay="Monday">        <Job name="wake up" >            <Job name="get dressed" >                <Job name="prepare breakfast" >                    <Job name="eat breakfast" > </Job>                </Job>            </Job>        </Job>        <Job name="work 9-5" >        </Job>    </Day>    <Day dow="2" templateDay="Tuesday"   >        <Job name="wake up" >            <Job name="get dressed" >                <Job name="prepare breakfast" >                    <Job name="eat breakfast" > </Job>                </Job>            </Job>        </Job>        <Job name="work 9-5" >        </Job>        <Job name="football" >        </Job>    </Day>    <Day dow="3"   templateDay="Wednesday" >        <Job name="wake up" >            <Job name="get dressed" >                <Job name="prepare breakfast" >                    <Job name="eat breakfast" > </Job>                </Job>            </Job>        </Job>        <Job name="work 9-5" >        </Job>    </Day>    <Day dow="4"  templateDay="Thursday"  >        <Job name="wake up" >            <Job name="get dressed" >                <Job name="prepare breakfast" >                    <Job name="eat breakfast" > </Job>                </Job>            </Job>        </Job>        <Job name="work 9-5" >        </Job>        <Job name="football" >        </Job>    </Day>    <Day dow="5" templateDay="Friday" >        <Job name="go to pub" >        </Job>    </Day>   使用此库http://code.google.com/p/x2js/将其转换为jsonDay可以有任意数量的Job,Job可以嵌套并且包含任意数量的其他Job。现在使用此代码<p ng-repeat="day in myData.Week.Day">   {{day._dow}} - {{day._templateDay}}</p>我可以列出有效的日期。我希望使用以下代码<p ng-repeat="day in myData.Week.Day">    {{day._dow}} - {{day._templateDay}}    <span ng-repeat="job in day.Job">        {{job._name}}    <span/></p>我可以列出当天的工作日和最高职位,但这是行不通的。(要列出嵌套的Jobs,将是下一个任务,而不是现在询问该任务)。那么,如何至少列出顶级职位?同样在json格式中,我看到一些Jobs Objects和一些are Arrays。如何处理两种情况?PS .:使用角度1.2.0-rc.3
查看完整描述

3 回答

?
翻过高山走不出你

TA贡献1875条经验 获得超3个赞

如果您有一个很大的嵌套JSON对象,并在多个屏幕上使用它,则可能会在页面加载中遇到性能问题。我总是去寻找小的单个JSON对象,并仅在需要它们时才将相关对象作为延迟加载查询。


您可以使用ng-init来实现


<td class="lectureClass" ng-repeat="s in sessions" ng-init='presenters=getPresenters(s.id)'>

      {{s.name}}

      <div class="presenterClass" ng-repeat="p in presenters">

          {{p.name}}

      </div>

</td> 

控制器端的代码应如下所示


$scope.getPresenters = function(id) {

    return SessionPresenters.get({id: id});

};

而API工厂如下:


angular.module('tryme3App').factory('SessionPresenters', function ($resource, DateUtils) {


        return $resource('api/session.Presenters/:id', {}, {

            'query': { method: 'GET', isArray: true},

            'get': {

                method: 'GET', isArray: true

            },

            'update': { method:'PUT' }

        });

    });


查看完整回答
反对 回复 2019-11-29
?
倚天杖

TA贡献1828条经验 获得超3个赞

创建一个不会在页面上呈现的虚拟标签,但它将用作ng-repeat的持有人:


<dummyTag ng-repeat="featureItem in item.features">{{featureItem.feature}}</br> </dummyTag>


查看完整回答
反对 回复 2019-11-29
  • 3 回答
  • 0 关注
  • 602 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信