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.



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow