Поиск…
Реактивный запрос
Пример кода:
В main.html
<template name="test">
<input type="checkbox" id="checkbox1" name="name" value="data">Check Me
{{showData}}
</template>
В 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'});
}
});
Объяснение:
Когда мы инициализируем реактивный var check_status
мы устанавливаем значение, равное {}
. В помощнике во время рендеринга те же данные передаются в запрос Collection.find(check_status.get())
который так же хорош, как и отображение всех данных.
Как только вы нажмете на флажок, запускается событие, описанное в Template.main.events
которое устанавливает значение check_status
в {field: data}
. Так как это реактивный var , шаблон showData
снова запускается, и на этот раз запрос - Collection.find({field: data})
, поэтому только поля, где возвращается field
сопоставляемое 'data'
.
Перед использованием этих команд вам необходимо добавить reactive var
пакет reactive var
( meteor add reactive-var
).