反應性查詢
示例程式碼:
在 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'});
}
});
說明:
當我們初始化反應變數 check_status 時,我們將值設定為 {}。在幫助器中,在渲染時,相同的資料被傳遞給查詢 Collection.find(check_status.get()),這與顯示所有資料一樣好。
單擊核取方塊後,會觸發 Template.main.events 中描述的事件,該事件將 check_status 的值設定為 {field: data}。因為,這是一個反應變數,重新執行 showData 模板,這次查詢是 Collection.find({field: data}),所以只返回 field 匹配'data'的欄位。
在使用此命令之前,你需要新增 reactive var 軟體包(meteor add reactive-var)。