反應性查詢
示例程式碼:
在 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
)。