2016-11-10 108 views
0

我正在玩酷酷的Aurelia UI-Virtualization插件(https://github.com/aurelia/ui-virtualization),为用户提供搜索结果列表。Aurelia UI虚拟化 - 重新绑定

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

就我而言,当您单击某个搜索结果时,单独的面板会显示有关该搜索结果的详细信息。但重新绑定后,它仍显示有关旧结果的信息。

谢谢!

亚伦

回答

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> 
+0

我有两个搜索框用于筛选同一个表的不同搜索参数。这也是我在搜索栏之间切换时刷新绑定的方式。 –