反應性查詢

示例程式碼:

在 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)。