2015-08-18 58 views
0

範圍值改變我試着像下面顯示接下來的一系列數據時NG-重複

startIndex = 0; 
lengthIndex = 5; 

<span aria-hidden="true" class="glyphicon glyphicon-chevron-left" ng-click="startIndex = startIndex-1"></span> 
    <ul> 
<li ng-repeat="week in mydata | limitTo:lengthIndex:startIndex"> 
</ul> 
<span aria-hidden="true" class="glyphicon glyphicon-chevron-left" ng-click="startIndex = startIndex-1"></span> 

當範圍值的變化,我想下一組數據來證明。但是當刷新頁面時,它會正確顯示數據,即數據片。但點擊範圍值正在改變,但數據不會改變。我該如何解決。

+0

你能解決這個問題嗎? –

回答

0

ng-repeat創建一個新的範圍所以,當您嘗試訪問startIndex將訪問子範圍和更新子範圍值only.To中的父範圍變更值ng-repeat或者使用下面$parent.startIndex作爲

給出
<li ng-repeat="week in mydata | limitTo:lengthIndex:startIndex"> 
<span aria-hidden="true" class="glyphicon glyphicon-chevron-left" ng-click="$parent.startIndex = $parent.startIndex-1"></span> 

或使startIndex一個對象,它將確保訪問和更新父屬性。

<li ng-repeat="week in mydata | limitTo:lengthIndex:index.startIndex"> 
<span aria-hidden="true" class="glyphicon glyphicon-chevron-left" ng-click="index.startIndex = index.startIndex-1"></span> 

Here是當你正在使用NG-重複工作的例子,按您的更新代碼

+0

請立即查看代碼。我已經更新了它。我認爲我錯誤地粘貼了代碼。 – Hacker

+0

@Hacker你可以在plunker/jsfiddle中創建一個例子嗎? –

+0

@Hacker這是一個工作示例http://plnkr.co/edit/H3pw0a3xCrkHN2yFBXJm?p=preview –

0

,棱角分明的消化過程持續到循環的結束。 ,因此它會打破從範圍到索引的鏈接,並在刷新之後反映出來,因爲它在那個時候提供了新的範圍。

這只是一個傳統的異步函數,最後調用$ scope($ apply())來告訴AngularJS剛剛發生了異步事件。

所以,當你改變範圍變量時,在ng-repeat中必須使用$ scope。$ apply()。