Aurelia class.bind不会触发函数

时间:2016-10-17 18:42:27

标签: aurelia aurelia-binding

我有一个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中执行代码

的区别是什么
  1. isCurrentPage(pageNumber)
  2. pageNumber === currentPage

    为什么在第一种情况下每次都没有调用函数isCurrentPage(pageNumber)?感谢。

1 个答案:

答案 0 :(得分:3)

我要猜测,在第一个示例中,pageNumber永远不会更改,但它不会导致绑定更新,但是,在第二个示例中,单击它时设置currentPage等于pageNumber。更改currentPage会导致绑定更新。