2017-07-04 67 views
0

我必須使用Angular的路由器創建一個prev和next組件,才能進入下一頁。問題不在於角度,而在於增量和減量邏輯。增量在prev,next按鈕中不起作用Angular 4

當我點擊下一次第一次是好的,但第二次,我必須點擊兩次才能看到下一頁。 prev按鈕也一樣。如果我想點擊回來,點擊第一個下一個後,我必須點擊兩次才能進入prev頁面。

我看了看,我看了一眼,看不到錯誤在哪裏。

HTML文件

<button class="btn btn-primary" (click)="prevPage()">Prev</button> 
<button class="btn btn-primary" (click)="nextPage()">Next</button> 

TS在HTML文件中的文件

pages = [ 
{name: '../page1', index: 0}, 
{name: '../page2', index: 1}, 
{name: '../page3', index: 2} 
]; 
current = this.pages[0]; 

getIndex(currentIndex: number, shift: number){ 
const lenght = this.pages.length; 
const incre = (((currentIndex + shift) + lenght) % lenght); 
console.log(incre); 
return incre; 
} 

prevPage() { 
const i = this.getIndex(this.current.index, -1); 
this.current = this.pages[i]; 
this.router.navigate([this.current.name], { relativeTo: this.route }); 
console.log(this.current.name); 
} 

nextPage() { 
const i = this.getIndex(this.current.index, 1); 
this.current = this.pages[i]; 
this.router.navigate([this.current.name], { relativeTo: this.route }); 
console.log(this.current.name); 
} 

回答

1

<button class="btn btn-primary" (click)="prevPage()">Prev</button> 
<button class="btn btn-primary" (click)="nextPage()">Next</button> 

更改(click)listener to nextPage()。

加上,所以不使感測(+長度)在

const的增量值=(((CURRENTINDEX +偏移)+ lenght)%lenght);

沒有它就可以正常工作!

const incre =((currentIndex + shift)%lenght);

相關問題