Angularjs 页面上的许多UI引导数据采集器加载非常慢-我可以使用单个实例并移动元素吗?

Angularjs 页面上的许多UI引导数据采集器加载非常慢-我可以使用单个实例并移动元素吗?,angularjs,angularjs-directive,angular-ui-bootstrap,Angularjs,Angularjs Directive,Angular Ui Bootstrap,我使用“ng repeat”显示了许多行。每行有2个UI引导日期选择器。当有很多行时,页面的加载速度会非常慢 我只想使用一个日期选择器,然后将其动态移动到用户单击的字段下,或者可能在单击时加载指令,并在做出选择后再次卸载它 有什么办法可以做到这一点吗 <li ng-repeat="ticket in data.tickets"> <div ng-click="openAddStartCal($event, ticket)" ng-hide="currentTicket

我使用“ng repeat”显示了许多行。每行有2个UI引导日期选择器。当有很多行时,页面的加载速度会非常慢

我只想使用一个日期选择器,然后将其动态移动到用户单击的字段下,或者可能在单击时加载指令,并在做出选择后再次卸载它

有什么办法可以做到这一点吗

<li ng-repeat="ticket in data.tickets">

    <div ng-click="openAddStartCal($event, ticket)" ng-hide="currentTicketUpdating == ticket.TicketId && currentParameterUpdating =='startCal' && startCalSaving == true">
                        <input type="text"
                               starting-day="2"
                               show-button-bar="false"
                               show-weeks="false"
                               class="form-control addTicketDateInput"
                               datepicker-popup="dd MMM"
                               ng-model="ticket.StartDate"
                               ng-change="saveEditStartDate(ticket)"
                               is-open="checkStartOpened(ticket)"
                               min-date=""
                               max-date="'2015-06-22'"
                               datepicker-options="dateOptions"
                               date-disabled="disabled(date, mode)"
                               ng-required="true"
                               close-text="Close" />
                    </div>
</li>

  • 如果需要,您可以使用ng开关或ng。Ng开关/Ng iff实际上会从DOM中删除其中的任何内容,直到条件计算为true为止

    例如:

    <li ng-repeat="ticket in data.tickets">
        <div ng-click="openAddStartCal($event, ticket);ticket.openCal = !ticket.openCal" ng-hide="currentTicketUpdating == ticket.TicketId && currentParameterUpdating =='startCal' && startCalSaving == true">
              <div ng-if="ticket.openCal">
                        <input type="text"
                               starting-day="2"
                               show-button-bar="false"
                               show-weeks="false"
                               class="form-control addTicketDateInput"
                               datepicker-popup="dd MMM"
                               ng-model="ticket.StartDate"
                               ng-change="saveEditStartDate(ticket)"
                               is-open="checkStartOpened(ticket)"
                               min-date=""
                               max-date="'2015-06-22'"
                               datepicker-options="dateOptions"
                               date-disabled="disabled(date, mode)"
                               ng-required="true"
                               close-text="Close" />
                    </div>
            </div>
    </li>
    

    然后在点击事件发生时设置ng include变量。

    我很好奇,所以我把它扔了下来-这真是太神奇了:)他们现在也有类似的功能,但我不确定你是否能在它里面做得这么好。我也在尝试为我的应用程序实现相同的方法,如plunker中所示,但我遇到了一些其他问题。单击datepicker按钮时,从dom中删除span并添加input textbox需要一些时间。为什么会这样?
    <li ng-repeat="ticket in data.tickets">
        <div ng-click="openAddStartCal($event, ticket);ticket.openCal = !ticket.openCal" ng-hide="currentTicketUpdating == ticket.TicketId && currentParameterUpdating =='startCal' && startCalSaving == true">
    
          <div ng-include=""></div>
    </li>