2016-11-10 3 views
0

Я играю с крутым плагином Aurelia UI-Virtualization (https://github.com/aurelia/ui-virtualization), чтобы предоставить пользователю список результатов поиска.Aurelia UI Virtualization - Rebinding

Если они выполняют новый поиск, я хочу заменить текущие результаты на новые. Я думаю, вам просто нужно настроить массив на новые результаты, но это создает какое-то странное поведение, вроде как «запомнить» это старое содержимое.

В моем случае, когда вы нажимаете на один из результатов поиска, отдельная панель отображает подробности об этом результате поиска. Но после повторной проверки он покажет информацию о старом результате.

Спасибо!

Аарон

ответ

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

У меня есть два окна поиска для разных параметров поиска, которые фильтруют одну и ту же таблицу. Это также то, как я завершил обновление привязок при переключении между строками поиска. –

Смежные вопросы