我正在使用酷炫的 Aurelia UI-Virtualization 插件 ( https://github.com/aurelia/ui-virtualization ) 为用户提供搜索结果列表。
如果他们进行新搜索,我想用新结果替换当前结果。我认为您只需要将数组设置为新结果,但这会产生一些奇怪的行为,有点像列表“记住”它的旧内容。
就我而言,当您单击其中一个搜索结果时,一个单独的面板会显示有关该搜索结果的详细信息。但是重新绑定后,它仍然显示有关旧结果的信息。
谢谢!
亚伦
我正在使用酷炫的 Aurelia UI-Virtualization 插件 ( https://github.com/aurelia/ui-virtualization ) 为用户提供搜索结果列表。
如果他们进行新搜索,我想用新结果替换当前结果。我认为您只需要将数组设置为新结果,但这会产生一些奇怪的行为,有点像列表“记住”它的旧内容。
就我而言,当您单击其中一个搜索结果时,一个单独的面板会显示有关该搜索结果的详细信息。但是重新绑定后,它仍然显示有关旧结果的信息。
谢谢!
亚伦
我设法使用信号解决了类似的问题:
http://aurelia.io/hub.html#/doc/article/aurelia/binding/latest/binding-binding-behaviors/5
搜索.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')
}
}
搜索.html
<template>
<div repeat.for="item in searchresults & signal:'update-results'">
${ item }
</div>
</template>