У меня есть 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)
не вызывается каждый раз в первом случае? Спасибо.