meteor - Meteor Helper 使用基于反应变量的查询
问题描述
我正在尝试使用一个助手,它应该返回一个 Collection 指定整个 Collection 的子集,并$in
使用来自templates:array
.
我有
var tags = new ReactiveArray();
在某些事件中,我更改了数组的内容,类似于
tags.pushArray(note.tags);
(或者也许我应该使用.set()
?)
我的帮手是
Template.editor.helpers({
tagslist() {
return Tags.find({ _id: { $in : tags }});
},
});
meteor.js:1010
但后来我得到一个看起来像这样的异常
if (allArgumentsOfTypeString)
console.log.apply(console, [Array.prototype.join.call(arguments, " ")]);
在堆栈中有compileValueSelector
. 这似乎表明 helper 的编译并不满足于它找到的内容。
我还尝试制作tags
一个模板本地实例,并添加.get()
到tags
辅助查询中。但结果相同。
我应该从哪里开始寻找?我正确使用 ReactiveArray 吗?是否可以做我想做的事,即有一个基于 ReactiveArray 的反应式查询?
解决方案
我个人没有使用过 ReactiveArray,但我认为同样的模式会起作用。我坚持使用 ReactiveVar,所以这里有一个例子可以让你朝着正确的方向前进。
Template.editor.onCreated(function () {
const instance = this;
instance.tags = new ReactiveVar([]);
});
Template.editor.helpers({
tagslist() {
const tags = Template.instance().tags.get();
return Tags.find({ _id: { $in : tags }});
}
});
Template.editor.events({
'click .tag'(event, instance){
const tag = this;
const tags = instance.tags.get();
tags.push(tag);
instance.tags.set(tags);
}
});
推荐阅读
- api - API 请求中的变音符号编码
- php - 如何使用 PHPExcel 在单元格中存储大量数字?
- html - 网页版 Squish 的 HTML 报告
- c++ - 错误“传递 const 列表
因为这个参数丢弃了限定符”在方法定义中 - unit-testing - Kotlin-multiplatform:如何执行 iOS 单元测试
- r - 如何在从 NetCDF 数据提取后合并 RasterBrick 列并重命名?【R语言】
- node.js - Nginx 反向代理到 NodeJS 应用程序导致 502 错误网关错误
- reactjs - Emotion.js 与 create-react-app: ReferenceError: jsx is not defined
- reactjs - How to run two react native android applications on two different servers at same time?
- python - 无法在ubuntu中通过python设置环境变量