Szukaj…
Reaktywne zapytanie
Przykładowy kod:
W main.html
<template name="test">
<input type="checkbox" id="checkbox1" name="name" value="data">Check Me
{{showData}}
</template>
W pliku Main.js
var check_status='';
//Reactive Var Initialization
Template.main.onCreated(function (){
check_status=new ReactiveVar({});
});
Template.main.helpers({
showData : function(){
return Collection.find(check_status.get());
}
});
Template.main.events({
"change #checkbox1" : function(){
check_status.set({field: 'data'});
}
});
Wyjaśnienie:
Kiedy inicjalizujemy reaktywny var check_status
, ustawiamy wartość równą {}
. W pomocniku podczas renderowania te same dane są przekazywane do zapytania Collection.find(check_status.get())
który jest tak dobry, jak pokazuje wszystkie dane.
Jak najszybciej kliknij pole wyboru, zdarzenie opisane w Template.main.events
jest wyzwalany, który ustawia wartość check_status
do {field: data}
. Ponieważ jest to reaktywny var , szablon showData
jest ponownie uruchamiany, a tym razem kwerenda to Collection.find({field: data})
, więc zwracane są tylko pola, w których zwracane jest field
pasujące do 'data'
.
Musisz użyć pakietu reactive var
( meteor add reactive-var
) przed użyciem tej komendy.