2016-11-10 106 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

我有兩個搜索框用於篩選同一個表的不同搜索參數。這也是我在搜索欄之間切換時刷新綁定的方式。 –