我有一个Aurelia View如下:
<li repeat.for="pageNumber of numOfPages"><a class.bind="isCurrentPage(pageNumber) ? 'blueBackground' : ''" click.delegate="pageClicked(pageNumber)">${pageNumber}</a></li>
和模型如下:
pageClicked(pageNumber: number) {
this.currentPage = pageNumber;
}
isCurrentPage(pageNumber: number) {
return this.currentPage === pageNumber;
}
它仅适用于第一个a
元素,并为其添加bluBackground
类。但是,当我单击任何其他a
元素时,它不会触发isCurrentPage
方法,因此该类不会更新。
但是,当我按如下方式更换条件时:
<li repeat.for="pageNumber of numOfPages"><a class="page-link" class.bind="pageNumber === currentPage ? 'blueBackground' : ''" click.delegate="pageClicked(pageNumber)">${pageNumber}</a></li>
它工作正常,并且在点击的每个blueBackground
上添加了a
类。
我的问题是,在class.bind
中执行代码
isCurrentPage(pageNumber)
和 pageNumber === currentPage
为什么在第一种情况下每次都没有调用函数isCurrentPage(pageNumber)
?感谢。
答案 0 :(得分:3)
我要猜测,在第一个示例中,pageNumber
永远不会更改,但它不会导致绑定更新,但是,在第二个示例中,单击它时设置currentPage
等于pageNumber
。更改currentPage
会导致绑定更新。