2015-10-14 43 views
0

我有一個表格,它在用戶登錄後想要重新渲染的函數上進行ng-repeat。如何使視圖加載ng-repeat並且再次激發功能。有沒有辦法對模型中的變化進行ng-repeat重新渲染?在模型更改時再次調用ng-repeat函數

下面是視圖,給出一個想法,爲什麼使用一個函數而不是循環遍歷模型。有問題的重複是ng-repeat="(index, event) in vm.getEvents(dayObject) track by $index"

<!-- CALENDAR NAV --> 
<div class="calendar-nav"> 
    <div class="prev"> 
     <button class="btn btn-default pull-right" ng-click="vm.goToPrevWeek()" ng-disabled="vm.isCurrentWeek"><i class="glyphicon glyphicon-chevron-left"></i></button> 
    </div> 
    <div class="date"> 
     <p class="text-primary text-center">{{vm.weekViewString}}</p> 
    </div> 
    <div class="next"> 
     <button class="btn btn-default pull-left" ng-click="vm.goToNextWeek()"><i class="glyphicon glyphicon-chevron-right"></i></button> 
    </div> 
</div> 
<!-- END CALENDAR NAV --> 
<!-- CALENDAR HEADER --> 
<div class="calendar-header"> 
    <div class="weekdate-header date-header day-1 split-{{vm.weekSplit}}" ng-class="{'today': dayObject.isToday}" ng-repeat="(index, dayObject) in vm.calendarDays track by $index"> 
     <div class="date-container"><span class="date">{{dayObject.day}}</span><span class="week-day"> {{dayObject.weekDay}}</span></div> 
    </div> 
</div> 
<!-- END CALENDAR HEADER --> 
<!-- CALENDAR CONTENT --> 
<div class="calendar-content"> 
    <div class="calendar-aside"> 
     <div class="day-hour" ng-repeat="(index, hourObject) in vm.calendarHours track by $index"> 
      <span class="hour">{{hourObject.hour}}</span> 
     </div> 
    </div> 
    <div class="calendar-days"> 
     <div class="calendar-day day-col day-1 split-{{vm.weekSplit}}" ng-class="{'today': dayObject.isToday}" ng-repeat="(index, dayObject) in vm.calendarDays track by $index"> 
      <div class="mobile-day hidden-lg hidden-md hidden-sm"> 
       <div class="date-container"><span class="date">{{dayObject.day}}</span><span class="week-day"> {{dayObject.weekDay}}</span></div> 
      </div> 
      <div class="day-hour hour-{{hourObject.number}}" ng-repeat="(index, hourObject) in vm.calendarHours track by $index"> 
       <div class="hour"> 
        <div class="half-hour"></div> 
       </div> 
      </div> 
      <!-- CALENDAR EVENTS --> 
      <div id="{{event.idName}}" class="event-container {{event.type}}" style="top: {{event.top}}px; left: {{event.left}}%; width: {{event.width}}%; height: {{event.height}}px;" 
       ng-repeat="(index, event) in vm.getEvents(dayObject) track by $index" ng-switch="event.type"> 
       <div class="buttons" ng-switch-when=""> 
        <div class="amount">{{event.spotsAvailable}}</div> 
       </div> 
       <div class="buttons" ng-switch-when="success"> 
        <i class="glyphicon glyphicon-ok-sign"></i> 
       </div> 
       <div class="buttons" ng-switch-when="full"> 
        <i class="glyphicon glyphicon-ban-circle"></i> 
       </div> 
       <div class="text"> 
        <span class="title">{{event.name}}</span> 
        <p class="locatie-time hidden-lg hidden-md hidden-sm"> <span>{{event.startsAt | date:'HH:mm' }}</span>&nbsp;-&nbsp;<span>{{event.endsAt | date:'HH:mm' }}</span> </p> 
        <span class="locatie-info">{{event.formattedAddress}}</span> 
       </div> 
      </div> 
      <!-- END CALENDAR EVENTS --> 
     </div> 

    </div> 
</div> 
<!-- END CALENDAR CONTENT --> 
+2

如果正在重複的列表發生更改,它將重新渲染。 – tymeJV

+0

由於它是一種功能,您只需知道它是否因再次運行而發生了變化。它會在函數中傳遞一個變量,如果該變量發生變化,是否會導致函數再次被評估? – dhuyvetter

+0

我想唯一的方法是循環一個列表,並讓該列表由我沒有循環的函數填充。 – dhuyvetter

回答

1

我結束了一個直接鏈接到函數返回的數據和現在的觀點正在更新替換的NG-重複的功能。

相關問題