反应性查询
示例代码:
在 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
)。