Aurelia UI虚拟化 - 重新绑定

时间:2016-11-10 21:33:20

标签: aurelia ui-virtualization

我正在使用酷炫的Aurelia UI-Virtualization插件(https://github.com/aurelia/ui-virtualization)来为用户提供搜索结果列表。

如果他们进行新搜索,我想用新的搜索替换当前结果。我认为你只需要将数组设置为新的结果,但这会产生一些奇怪的行为,有点像列表是“记住”它的旧内容。

就我而言,当您点击其中一个搜索结果时,单独的面板会显示有关该搜索结果的详细信息。但经过重新调整后,它仍显示有关旧结果的信息。

谢谢!

亚伦

1 个答案:

答案 0 :(得分:2)

我设法使用signals来解决类似的问题:

http://aurelia.io/hub.html#/doc/article/aurelia/binding/latest/binding-binding-behaviors/5

search.js:

import {inject} from 'aurelia-framework'
import {BindingSignaler} from 'aurelia-templating-resources'

export class Search
{
    static inject() { return [BindingSignaler] }

    constructor(signaler)
    {
        this.signaler = signaler
    }

    search()
    {
        // do your thing
        this.searchresults = [ /* searchresults here */ ]
        this.signaler.signal('update-results')
    }
}

search.html

<template>
    <div repeat.for="item in searchresults & signal:'update-results'">
        ${ item }
    </div>
</template>